方法调用
方法
方法定义的完整格式
- 方法的修饰符:暂时都使用public static 修饰。
- 方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据。
- 形参列表可以有多个,甚至可以没有; 如果有多个形参,多个形参必须用“,”隔开,且不能给初始化值。
- 如果方法不需要返回结果,返回值类型必须申明成void(无返回值), 此时方法内部不可以使用return返回数据。

方法重载
- 同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法。
- 作用: 可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。
- 只要是同一个类中,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!(如:修饰符,返回值类型都无所谓)
- 形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。
可变参数
- 可变参数用在形参中可以接收多个数据。
- 可变参数的格式:数据类型...参数名称
可变参数的作用
- 传输参数非常灵活,方便。可以不传输参数,可以传输1个或者多个,也可以传输一个数组
- 可变参数在方法内部本质上就是一个数组。
可变参数的注意事项:
- 1.一个形参列表中可变参数只能有一个
- 2.可变参数必须放在形参列表的最后面
参数传递
值传递:在 Java 方法中传递参数,形参本质是实参的副本。
- 参数是基础数据类型:对形参的改变不会影响实参。
- 参数是指向对象的引用(包括数组、字符串):对对象数据进行更改会影响实参,但改变引用指向的对象不会影响实参。
public class Test {
public static void main(String[] args) {
int i = 0;
int[] arr = {0};
test(i, arr);
System.out.println("i = " + i);
System.out.println("arr[0] = " + arr[0]);
}
private static void test(int i, int[] arr) {
i++; // 实参不改变
arr[0]++; // 实参指向的对象改变
arr = new int[]{2}; // 实参不改变
}
}
方法递归
- 方法直接调用自己或者间接调用自己的形式称为方法递归(recursion)。
- 递归做为一种算法在程序设计语言中广泛应用。
- 递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出现象。
递归的形式
- 直接递归:方法自己调用自己。
- 间接递归:方法调用其他方法,其他方法又回调方法自己。
递归的两个阶段
- 回溯:一层一层调用下去
- 递推:满足某种结束条件,结束递归调用,然后一层一层返回
Lambda表达式
Lambda概述
- Lambda表达式是JDK 8开始后的一种新语法形式。
- 作用:简化函数式接口的匿名内部类的代码写法。
- 注意:必须是接口的匿名内部类,接口中只能有一个抽象方法
Lambda表达式的简化格式

函数式接口
- 首先必须是接口、其次接口中有且仅有一个抽象方法的形式
- 通常我们会在接口上加一个@FunctionalInterface注解,标记该接口必须是满足函数式接口
体验Lambda表达式

Lambda表达式简化Comparator接口的匿名形式

Lambda表达式的省略写法
1. 参数类型可以省略不写。
2. 如果只有一个参数,参数类型可以省略,同时()也可以省略。
3. 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号!
4. 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写

浙公网安备 33010602011771号