方法调用与重载
方法调用
-
方法引用(调用):对象名称.方法名(实参列表)
-
Java 语言支持两种调用方法的方式,根据方法是否有返回值来进行选择
-
当方法返回一个值时,方法调用通常被当做一个值
int larger = max(30, 40);
-
当方法无返回值时,方法调用一定是一条语句
-
Java 是值传递,而不是引用传递
-
值传递是传递实参副本,函数修改不会影响实参;引用传递是传递实参地址,函数修改会影响实参
-
程序案例:
public class PassValue { public static void main(String[] args) { System.out.println("=====1、值传递====="); int i = 5; System.out.println(i); // 输出5 change(i); System.out.println(i); // 输出5 } public static void change(int i){ i = 10; } } // -------------------------------------- // 控制栏输出打印: /** =====1、值传递===== 5 5 */ public class PassRefrence { public static void main(String[] args) { System.out.println("=====2、引用传递====="); // 对象实例化(记住格式及现象,后续面向对象会学习) TestDemo testDemo = new TestDemo(); int i = testDemo.i; System.out.println(i); // 输出5 change(testDemo); i = testDemo.i; System.out.println(i); // 输出10 } public static void change(TestDemo testDemo){ testDemo.i = 10; } } // -------------------------------------- // 控制栏输出打印: /** =====2、引用传递===== 5 10 */ public class TestDemo { int i = 5; }
-
上面两种情况,目前理解起来比较困难,后续学习面向对象的思维后,理解起来会很容易
方法重载
-
重载就是在一个类中,有相同函数的名称,但形参不同的函数
-
方法重载规则1:方法名称必须相同
-
方法重载规则2:参数列表必须不同(个数不同、或数据类型不同、参数列表顺序不同等)
-
方法重载规则3:方法的返回参数类型可以相同也可以不同
-
方法重载规则4:仅方法的返回类型不同不足以陈给方法的重载
-
程序案例:
public class Method { public static void main(String[] args) { println(); System.out.println("=====整数相加====="); System.out.println(sum(10, 23)); System.out.println("=====小数相加====="); System.out.println(sum(10.0, 23.0)); System.out.println("=====整数比较====="); System.out.println(compare(10, 23)); System.out.println(compare(10, 10)); System.out.println(compare(23, 10)); System.out.println("=====小数相加====="); System.out.println(compare(10.0, 23.0)); System.out.println(compare(10.0, 10.0)); System.out.println(compare(23.0, 10.0)); } public static void println(){ System.out.println("这是无参方法!!!"); } public static int sum(int num1, int num2) { return num1 + num2; } public static double sum(double num1, double num2) { return num1 + num2; } public static int compare(int num1, int num2) { if (num1 > num2) { return 1; } if (num1 < num2) { return -1; } return 0; } public static String compare(double num1, double num2) { if (num1 > num2) { return "1"; } if (num1 < num2) { return "-1"; } return "0"; } } // -------------------------------------- // 控制栏输出打印: /** 这是无参方法!!! =====整数相加===== 33 =====小数相加===== 33.0 =====整数比较===== -1 0 1 =====小数相加===== -1 0 1 */