/**
* @author 20215
* lambda表达式,内部类,lambda的使用是避免内部类定义过多,属于函数式编程
*/
public class LambdaTest {
//静态内部类
static class ITest02 implements Test01{
@Override
public void lambdaTest() {
System.out.println("静态内部类");
}
}
public static void main(String[] args) {
//实例化
Test01 test01 = new ITest01();
test01.lambdaTest();//外部类
test01 = new ITest02();
test01.lambdaTest();//静态内部类
//方法内部类
class ITest03 implements Test01{
@Override
public void lambdaTest() {
System.out.println("方法内部类");
}
}
test01 = new ITest03();
test01.lambdaTest();
//匿名内部类
test01 = new Test01(){
@Override
public void lambdaTest() {
System.out.println("匿名内部类");
}
};
test01.lambdaTest();//匿名内部类
//lambda 表示方法,去掉类去掉方法名,只保留方法的括号和方法体,在括号和方法体中间加上->就可以了,注意lambda使用的条件是接口中只能由一个方法,否则报错,不能用
test01 = ()->{
System.out.println("lambda");
};
test01.lambdaTest();//lambda
}
}
interface Test01{
void lambdaTest();
}
//外部类
class ITest01 implements Test01{
@Override
public void lambdaTest() {
System.out.println("外部类");
}
}