DAY25-JDK8新特性

Lambda表达式

接口中只要方法不超过3个我们都可以用匿名内部类的方式来实现它,jdk8以后引入了Lambda表达式,他是匿名内部类的简写。

Lambda是一个匿名内部类的简写,可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。

注意:inteface定义的接口中方法必须都是抽象的,那么接口中可不可以有不是抽象的方法呢,可以有,但是方法要用default修饰。

interface Test{
	abstract void test1();//abstract可以省略
	void test2();
	default void test3(){
		System.out.println("接口中的非抽象方法!,我是不用重写的~");
	}
}
class myTest implements Test{

	@Override
	public void test1() {
		System.out.println("抽象方法1");
	}

	@Override
	public void test2() {
		System.out.println("抽象方法2");
	}
}
public class Demo3 implements Test{	//main方法类也可以实现接口,可以在本类中创建自己的对象调用方法
	public static void main(String[] args) {
		myTest my=new myTest();
		my.test1();
		my.test2();
		my.test3();
		System.out.println("-------------------------------------");
		Demo3 demo3=new Demo3();//创建本类对象
		demo3.test1();
		demo3.test2();
		demo3.test3();
	}

	@Override
	public void test1() {
		System.out.println("这是main方法类中的抽象方法1");
	}

	@Override
	public void test2() {
		System.out.println("这是main方法类中的抽象方法2");
	}
}

Lambda表达式:

从匿名类到Lambda转换

例如1

 

例如2:

Lambda表达式语法:

Lambda表达式在Java中引入了新的语法元素和操作符。“->”该操作符被称为Lambda操作符或者是箭头符号,将Lambda表达式分为两部分:

左侧:指定了Lambda表达式所需要的所有参数

右侧:指定了Lambda体,即Lambda表达式要执行的功能。

语法格式1:无参数(),无返回值void,Lambda体只有一条语句

语法格式2:一个参数(arg),无返回值void

一个参数,无返回值void
一个参数,五返回值void

 

猜你喜欢

转载自blog.csdn.net/qq_42837554/article/details/88744871