方法概述
一、方法的定义
- 修饰符 返回值类型 方法名 (参数类型,参数名,参数类型,参数名2,…){
执行语句
…
return 返回值
} - 例:
public int method(){ System.out.println("这是执行语句"); return 1;//返回值 }
二、方法的重载(overload)
1.定义
- 在同一个类,允许存在一个以上的同名方法,只要它们的参数列表不相同即可,满足这样特征的多个方法,彼此之间构成方法的重载。
- 例:
public class method2 {
public static void method(){
System.out.println("这是执行语句1");
}
public static int method(int x){
System.out.println("这是执行语句2");
return 1;//返回值
}
public static void main(String[] args) {
method();
method(1);
}
}
- 输出结果:
2.总结
- 两同:同一类、相同的方法名
- 一不同:①.参数列表不同。②.参数类型不同
- 注意:方法的重载与形参的名、权限修饰符、返回值类型都没有关系。
3.如何判断两个方法是相同的呢?
- 方法名相同,且形参列表相同
三、可变个数的形参方法(jdk5.0新特性)
1.使用场景
- 在调用方法时,可能会出现方法形参类型是确定的,但是参数的个数不确定。此时,我们就可以使用可变个数形参的方法
2.格式
- (参数类型 . . . 参数名)
- 例:
public class method2 {
public static void method(int ... numbers){
System.out.println("这是执行语句1");
}
public static void main(String[] args) {
method();
}
}
- 输出结果:
3.说明:
①.可变个数的方法在调用时,针对于可变的形参赋的实参个数可以为:0个、1个或多个
②.可变个数形参的方法与同一个类中,同名的多个方法之间可以构成承载
③.特例:可变个数形参的方法与同一个类中方法名相同,且与可变个数形参的类型相同的数组参数不构成重载
④.可变个数的形参必须声明在形参列表的最后
⑤.可变个数的形参最多在一个方法列表的形参中出现一次
三、方法的值传递机制
1.对于方法内声明的局部变量来说:如果出现赋值操作
- 如果是基本数据类型的变量,则将此变量保存的数据值传递出去。
- 如果是引用数据类型的变量,则将此变量保存的地址值传递出去。
2.方法的参数的传递机制:值传递机制
①.实参给形参赋值过程
- 如果是基本数据类型的变量,则将实参保存的数据值赋给形参
- 如果是引用数据类型的变量,则将实参保存的地址值赋给形参
3.Java中的参数传递机制是什么?
- 值传递。(不是引用传递)
四、方法的递归
1.什么是递归?
- 方法自己调用自己的现象就叫递归。
2.递归方法的分类
- 直接递归:
- 间接递归:
3.使用说明
- 递归方法包含了一种‘隐式的循环’。
- 递归方法会重复执行某段代码。但这种重复执行无需循环控制。
- 递归一定要向已知方向递归,否则这种递归就变成了无穷递归,最终发生栈内存溢出。