Day05
1.方法
1.定义:
方法就好比是一个工厂。
例如:蒙牛工厂
原料:奶牛、饲料、水
产出物:奶制品
对于方法来说:
参数(原料):就是进入方法的数据。
返回值(产出物):就是从方法中出来的数据。
2.定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,…){
方法体
return 返回值;
}
(1)修饰符:现阶段的固定写法,public static
。
(2)返回值类型:也就是方法最终产生的数据结果是什么类型
(3)方法名称:方法的名字,规则和变量一样,小驼峰。
(4)参数类型:进入方法的数据是什么类型。
(5)参数名称:进入方法的数据对应的变量名称。
tips:参数如果有多个使用逗号分隔开。
(6)方法体:方法需要做的事情,若干行代码。
(7)return:两个作用,第一停止当前方法。第二将后面的返回值还给调用处。
(8)返回值:也就是方法执行后最终产生的数据结果。
注意:
(1)return后面的“返回值”,必须和方法名称前面的“返回值类型”保持一致。
(2)对于一个void没有返回值的方法,return 后面不能跟数据,只能光"return;",作用仅是结束方法的执行。return作为方法的最后一行时可以省略不写。
(3)一个方法中可以有多个return语句,但是必须保证也同时只有一个会被执行。例如:求两个数中的最大值
public static int getMax(int a, int b) {
if (a > b) {
return a;
}else {
return b;
}
}
要么return a执行,要么eturn b执行。
3.方法调用的三种格式
(1)单独调用:方法名称(参数);
(2)打印调用:System.out.println(方法名称(参数));
(3)赋值调用:数据类型 变量名称 = 方法名称(参数);
4.举例:
public class Demo02MethodDefine {
public static void main(String[] args) {
//单独调用
sum(10,20);
System.out.println("=================");
//打印调用
System.out.println(sum(10,20));
System.out.println("=================");
//赋值调用
int num = sum(30,50);
System.out.println("结果为" + num);
}
public static int sum(int a,int b) {
System.out.println("方法调用啦!");
int result = a + b;
return result;
}
}
注意:
(1)单独调用只能调用方法,但是方法执行后产生的结果不输出,无法使用。
(2)返回值类型为void的方法只能单独调用,不能打印调用和赋值调用。
5.方法的调用流程图解。
找到对应的方法—>参数传递到方法的调用处—>执行方法体—>得到执行结果,带着返回值回到方法的调用处。
6.方法重载:多个方法名称相同,参数列表不同
调用方法时,根据参数列表自动匹配执行相应的方法
方法重载与下列因素相关:
(1)参数个数不同
/**参数的个数不同*/
public static int getSum(int a, int b) {//两个参数
int sum;
sum = a + b;
return sum;
}
public static int getSum(int a, int b, int c) {//三个参数
int sum;
sum = a + b + c;
return sum;
}
(2)参数类型不同
/**参数的类型不同*/
public static int getSum(int a, int b) {//int类型
int sum;
sum = a + b;
return sum;
}
public static int getSum(double a, double b) {//double类型
int sum;
sum = (int) (a + b);
return sum;
}
(3)参数的多类型顺序不同。
/**参数的多类型顺序不同*/
public static int getSum(int a, double b) {
int sum;
sum = (int) (a + b);
return sum;
}
public static int getSum(double a, int b) {
int sum = (int) (a + b);
return sum;
}
方法重载与下列因素无关:
(1)与参数名称无关
public static int getSum(int a, int b) {
int sum;
sum = a + b;
return sum;
}
public static int getSum(int z, int x) {//错误重载,与参数名称无关。
int sum;
sum = z + x;
return sum;
}
(2)与方法的返回值类型无关
public static int getSum(int a, int b) {
return a + b;
}
public static double getSum(int a, int b) {//错误重载,与方法的返回值类型无关。
return a + b;
}