Day8 : 方法

1. 返回值
1.2 代码中的返回值需要使用的关键字
return 返回值;

作用:
	1. 结束当前方法的执行
	2. 返回return之后的数据,到方法之外,要求返回值的数据与方法声明位置告知的返回类型一直
1.3 完成一个无参有返回的方法
1.3.1 方法实现分析
需求:返回一个整数5
    
分析:
    1. public static(固定格式)
	2. 返回类型:int(5是一个int)
	3. 方法名:getSumOfTwoNum
	4. 参数个数: 0
    5. 返回值:5

public static int giveMeFive () {
		return 5;
}
1.3.2 方法实现
/*
 返回一个整数5
*/

class Method1 {
	
	/**
	* 返回一个5
	*
	* @return 返回一个整数5
	*/
	public static int giveMeFive () {
		return 5;
	}
    
	public static void main(String[] args) {
		giveMeFive();// 只是调用方法
        int ret = giveMeFive();// 返回值用以赋值
        System.out.println(giveMeFive()); // 返回值用以打印
	}
}
小结
1. 返回值使用关键字return
2. 带有返回值方法,需要在文档注释中加入@return加以说明
3. 方法返回值类型和方法体内返回数据类型必须一致
4. 方法的返回值处理方式,由程序员自己决定
练习
/*
 返回一个大写字母A
*/
class Method2 {
	
	/**
	* 返回一个大写字符A
	*
	* @return 返回一个char类型,返回值为大写字符A
	*/
	public static char getA() {
		return 'A';
	}
	
	public static void main(String[] args) {
		char ch = 'a';
		
		System.out.println("方法运行之前" + ch);
		
		ch = getA();
		
		System.out.println("方法运行之后" + ch);
	}
}
1.4 完成一个有参数有返回值的方法
1.4.1 方法分析
需求:计算两个int类型数据之和,通过返回值返回结果

方法实现分析:
	1. public static(固定格式)
	2. 返回类型:long
	3. 方法名:getSumOfTwoNum
	4. 参数类型:int和int
	5. 参数个数: 2
	6. 参数列表: int num1, int num2

public static long getSumOfTwoNum(int num1, int num2) {
		return num1 + num2;
	}
1.4.2 方法实现
/*
 计算两个int类型数据之和,通过返回值返回结果
*/


class Method3 {
	
	/**
	* 计算两个int类型数据之和,通过返回值返回结果
	*
	* @param num1 类型为int,第一个加数
	* @param num2 类型为int,第二个加数
	*
	* @return 返回类型为long,num1 + num2
	*/
	public static long getSumOfTwoNum(int num1, int num2) {
		return num1 + num2;
	}
	
	public static void getSumOfTwoNum(String[] args) {
        long sum = 0;
        sum = getSumOfTwoNum(100,201);
		
        System.out.println("sum = " + sum);
	}
}
1.5 练习
1. 在方法返回时,要尽量减少return出现的次数
2. 三目运算符尽量只在简单逻辑使用
3. 学会变通!!!变通!!!变通!!!
class Method4 {
	
	/**
	* 获取两个整数中较大的一个
	*
	* @param num1 数据类型int;第一个整数
	* @param num2 数据类型int;第二个整数
	* @return 数据类型int;返回较大的数
	*/
	public static int maxOfNum(int num1, int num2) {
		return num1 > num2 ? num1 : num2;
	}

}
2. 局部变量
2.1 思考
class Method9 {
	public static void test(int num) {
		num = 10;
	}
	
	public static void main(String[] args) {
		int num = 5;
		
		test(num);
		
		System.out.println(num);
	}
}

结果:
    5
2.2 概念
局部变量:
	除class大括号之外,其他大括号以内的变量都可以认为是一个局部变量
    方法发括号内,if分支结构内,switch case结构大括号内,循环大括号以内
    以上大括号以内全部是【局部变量】
    
作用域
	当前局部变量能够使用的的范围
	局部变量有且只能在当前大括号使用
	
生存期
	局部变量生存期只在大括号内
小结
1. 使用和定义变量,一定要注意变量的作用域和生存周期
2. 牢记代码执行顺序:自上而下,从左到右