一次弄懂各种内部类(静态,局部,匿名)以及Lambda表达式

package com.pzc.demo01;

//1.1 定义一个函数式接口(即只包含一个抽象方法的接口)(因为在同一个.java 前缀不用写 public  )
interface Ilike{
    void lambda(); //可以不写 public abstract
}

//1.2 实现类
class Like implements Ilike{
    @Override
    public void lambda() {
        System.out.println("I like lambda(正常写法)");
    }
};

public class LambdaTest {

    //2.1 静态内部类
    static class Like2 implements Ilike{
        @Override
        public void lambda() {
            System.out.println("I like lambda(静态内部类)");
        }
    };

    public static void main(String[] args) {
        //1.3 创建主函数,实例化对象,调用对象方法
        Ilike like = new Like();
        like.lambda();

        //2.2 实例化对象,调用对象方法
        Ilike like2 = new Like2();
        like2.lambda();

        //3.1 局部内部类
        class Like3 implements Ilike{
            @Override
            public void lambda() {
                System.out.println("I like lambda(局部内部类)");
            }
        };

        //3.2 实例化对象,调用对象方法
        Ilike like3 = new Like3();
        like3.lambda();

        //4 匿名内部类(没有类的名称,必需借助接口或者父类)
        Ilike like4;
        like4 = new Ilike() {
            @Override
            public void lambda() {
                System.out.println("I like lambda(匿名内部类)");
            }
        };  //注意写";"
        //调用方法
        like4.lambda();

        //5 Lambda简化(函数式接口是前提!!!)
        Ilike like5;
        like5 = ()->{  //对比4 类中只有一个方法(最根本原因实现的是函数式接口)
                       //所以此时省略类名、方法名
            System.out.println("I like lambda(Lambda 表达式)");
        };
        like5.lambda();

        //类中只有一条语句,可以进一步简化

        like5 = () -> System.out.println("I like lambda(Lambda 表达式(极简))");
        like5.lambda();


    }


}

输出:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值