方法的三种调用格式
方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。
- 单独调用:方法名称(参数);
- 打印调用:System.out.println(方法名称(参数));
- 赋值调用:数据类型 变量名称 = 方法名称(参数);
注意:返回值类型固定写为void的方法没有返回值,只能够单独调用,不能进行打印调用或者赋值调用。
public class MethodDefine {
public static void main(String[] args) {
// 单独调用
sum(10, 20);
System.out.println("===========");
// 打印调用
System.out.println(sum(10, 20)); // 30
System.out.println("===========");
// 赋值调用
int number = sum(15, 25);
number += 100;
System.out.println("变量的值:" + number); // 140
}
public static int sum(int a, int b) {
System.out.println("方法执行啦!");
int result = a + b;
return result;
}
}
运行结果:
方法重载
方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。
方法重载与下列因素相关:
- 参数个数不同
- 参数类型不同
- 参数的多类型顺序不同
方法重载与下列因素无关:
- 与参数的名称无关
- 与方法的返回值类型无关
public class Demo01MethodOverload {
public static void main(String[] args) {
/*System.out.println(sumTwo(10, 20)); // 30
System.out.println(sumThree(10, 20, 30)); // 60
System.out.println(sumFour(10, 20, 30, 40)); // 100*/
System.out.println(sum(10, 20)); // 两个参数的方法默认int
System.out.println(sum(10d, 20)); // 两个参数的方法10d与(double)10相同
System.out.println(sum(10, 20, 30)); // 三个参数的方法
System.out.println(sum(10, 20, 30, 40)); // 四个参数的方法
// System.out.println(sum(10, 20, 30, 40, 50)); // 找不到任何方法来匹配,所以错误!
sum(10, 20);
}
public static int sum(int a, double b) {
System.out.println("有2个参数的方法执行1!");
return (int) (a + b);
}
public static int sum(double a, int b) {
System.out.println("有2个参数的方法执行2!");
return (int) (a + b);
}
public static int sum(int a, int b) {
System.out.println("有2个参数的方法执行3!");
return a + b;
}
// 错误写法!与方法的返回值类型无关
// public static double sum(int a, int b) {
// return a + b + 0.0;
// }
// 错误写法!与参数的名称无关
// public static int sum(int x, int y) {
// return x + y;
// }
public static int sum(double a, double b) {
return (int) (a + b);
}
public static int sum(int a, int b, int c) {
System.out.println("有3个参数的方法执行!");
return a + b + c;
}
public static int sum(int a, int b, int c, int d) {
System.out.println("有4个参数的方法执行!");
return a + b + c + d;
}
}
运行结果:
试一试-----判断下面方法重载是否正确:
-
public static void sum(){} // 正确
-
public static void sum(int a){} // 正确
-
static void sum(int a,int b){} // 代码错误:和第8行冲突
-
public static void sum(double a,int b){} // 正确
-
public static void sum(int a,double b){} // 代码错误:和第6行冲突
-
public void sum(int i,double d){} // 代码错误:和第5行冲突
-
public static void SUM(){} // 代码正确不会报错,但是并不是有效重载
-
public static void sum(int i,int j){} // 代码错误:和第3行冲突