lamda表达式的循序渐进过程

lamda表达式的前提是一个接口中只有一个抽象类方法


public class Lamda {

    public static void main(String[] args) {
        Like like=new Ilike();
        like.like(520);
    }
}
interface Like{
    void like(int a);
}

//1.类实现
class Ilike implements Like{
    @Override
    public void like(int a) {
        System.out.println("我爱你"+a);
    }
}

lamda表达式的循序渐进过程_第1张图片
2.静态内部类

public class Lamda {
    static class Ilike implements Like{
        @Override
        public void like(int a) {
            System.out.println("我爱你"+a);
        }
    }
    public static void main(String[] args) {
        Like like=new Ilike();
        like.like(520);
    }
}
interface Like{
    void like(int a);
}

在这里插入图片描述
3.局部内部类

public class Lamda {

    public static void main(String[] args) {
        class Ilike implements Like{
        @Override
        public void like(int a) {
            System.out.println("我爱你"+a);
        }
    }
        Like like=new Ilike();
        like.like(520);
    }
}

lamda表达式的循序渐进过程_第2张图片
4.匿名内部类

public class Lamda {

    public static void main(String[] args) {
    Like like=new Like() {
        @Override
        public void like(int a) {
            System.out.println("我爱你"+a);
        }
    };

        like.like(520);
    }
}

直接new的接口,
这里注意一下,匿名内部类实现后加上分号。
5.lamda表达式

public class Lamda {

    public static void main(String[] args) {
    Like like=null;
        like=(a)->{
            System.out.println("我爱你"+a);
        };
        like.like(520);
    }
}

先定义一个接口变量,随后为其赋值为(参数)->{
方法内部实现语句;
};
依然不要忘了后面的分号。
这个就是因为只有一个方法,所以省略了方法名,直接定义。

你可能感兴趣的:(lamda表达式)