lambda表达式 和匿名内部类

lambda

作用:简化满足条件的匿名内部类(匿名内部类对象)
前提:函数式接口
语法格式:

语法格式()->{ }
( ) : 重写抽象方法的参数列表
-> : lambda 符号 | 箭头符号
{ } :重写抽象方法的方法体

匿名内部类的写法
 //匿名内部类对象
 Smoke s = new Smoke() {
            @Override
            public void smoking() {
                System.out.println("边吸烟边喝水...");
            }
        };
//lambda写法1 : 标准写法
Smoke s = ()->{
 System.out.println("边吸烟边喝水...");
    }; 
//lambda写法2 : 当{}lambda体中语句只有一句,前后的{}可以省略
//Smoke s = ()->System.out.println("边吸烟边喝水...");  
 //lambda写法3 : 当()中存在参数,参数的数据类型可以省略
//Smoke s = (a,b)->System.out.println("边吸烟边喝水..."+(a+b));
//lambda写法4 : 当()中的参数只有一个,前后的()可以省略 
//Smoke s = a -> System.out.println("边吸烟边喝水..."+(a)); 
//lambda写法5 : 当{}中语句体只有一句,并且为return带出返回值语句,前后的{}与return关键字可以一起省略 
//Smoke s = a -> a>=18;
     System.out.println(s.smoking(6));;   
//函数式编程 : 把函数的实现作为参数传递
       test((age)->{return false;});

匿名内部类

匿名对象只能在当前行使用一次

在主方法中使用先进行:

  1. 先定义实现类,实现重写方法
  2. 定义实现类对象
  3. 通过实现类对象调用重写后的方法

匿名内部类格式 | 匿名内部类对象格式 : 把定义实现类,创建实现类对象合并成为一步实现
new 接口|抽象类(){ ->实现类的类体|子类的类体
//重写抽象方法
注意 :

通过匿名内部类定义的实现类或子类只能在当前使用一次,因为没有类名无法根据类名继续使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值