Java 学习29:方法
一、概述
1. 什么是方法
方法是语句的集合,它们在一起执行一个功能。
2. 方法的优点
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 可以提高程序开发的效率。
- 提高了代码的重用性。
3. 方法的命名规则
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,例如:addPerson。
二、方法创建
1. 语法
修饰符 返回值类型 方法名(参数类型 参数名) {
...
方法体
...
return 返回值;
}
2. 实例
public static int max(int num1, int num2) {int result; if (num1 > num2)result = num1;elseresult = num2;return result;
}三、方法调用
1. 非静态方法调用
非静态方法是没有 static 修饰的方法,必须通过对象来调用。例如:
public class InvokeMethod {public static void main(String[] args) {InvokeMethod in = new InvokeMethod();in.t1();}public void t1() {System.out.println("t1");}
}在上述代码中,t1() 方法是一个非静态方法,必须通过 InvokeMethod 类的对象 in 来调用。
2. 静态方法调用
静态方法是用 static 修饰的方法,可以通过类名直接调用。例如:
public class InvokeMethod {public static void main(String[] args) {InvokeMethod.t2();}public static void t2() {System.out.println("static t2");}
}在上述代码中,t2() 方法是一个静态方法,可以通过类名 InvokeMethod 直接调用。
如果是在本类中的内部调用,可以省略类名。例如:
public class InvokeMethod {public static void main(String[] args) {t2();}public static void t2() {System.out.println("static t2");}
}3. 实例
public class Test {/** 主方法 */public static void main(String[] args) {int i = 5;int j = 2;int k = max(i, j);  // 调用方法System.out.println( i + " 和 " + j + " 比较,最大值是:" + k);}/** 返回两个整数中的较大者 */public static int max(int num1, int num2) {int result; if (num1 > num2)result = num1;elseresult = num2;return result;}
}四、方法重载
1. 方法重载的含义
重载(Overloading)是指在同一个类中定义多个方法,这些方法具有相同的名字,但参数列表不同。参数列表的不同可以体现在参数的数量、类型或顺序上。
重载的主要目的是为了提高代码的可读性和灵活性,使得同一个方法名可以处理不同类型或数量的参数。
2. 重载的规则
- 方法名相同:所有重载的方法必须具有相同的方法名。
- 参数列表不同:参数的数量、类型或顺序必须至少有一个不同。
- 返回类型可以不同:重载的方法可以有不同的返回类型,但这不是区分重载方法的依据。
- 访问修饰符可以不同:重载的方法可以有不同的访问修饰符。
- 异常声明可以不同:重载的方法可以声明新的或更广的检查异常。
3. 实例
static int plusMethod(int x, int y) {return x + y;
}static double plusMethod(double x, double y) {return x + y;
}public static void main(String[] args) {int myNum1 = plusMethod(8, 5);double myNum2 = plusMethod(4.3, 6.26);System.out.println("两数之和是:" + myNum1);System.out.println("两数之和是:" + myNum2);
} 五、递归
1. 递归的含义
递归是指在一个方法的执行过程中调用自身的方法。这种方法在解决某些问题时非常有效,尤其是那些可以分解为更小的相同问题的情况。递归的核心在于定义一个基准条件(终止条件)和一个递推公式。
2. 实例
求阶乘。递推公式为:N! = N * (N-1)!,其中1! = 1。
class Factorial {static int factorial( int n ) {if (n != 1)  // 终止条件return n * factorial(n-1); //递归调用elsereturn 1;}public static void main(String[] args) {int number = 5;int result;result = factorial(number);System.out.println(number + " 的阶乘:" + result); // // 输出 5的阶乘:120}
}
