java匿名类和匿名函数的概念和写法

53 篇文章 2 订阅
文章介绍了Java8中的Lambda表达式,它简化了代码编写,使得代码更优雅。Lambda表达式基于函数式接口,如示例中的ILike接口。文章通过匿名内部类和Lambda的对比,展示了Lambda如何进一步简化代码,可以直接省略实现类名、函数名。结论强调Lambda是对匿名内部类的简化写法,两者本质相同。
摘要由CSDN通过智能技术生成

前言

Lambda流式操作是Java8中重要的特性,lambda表达式核心概念为 函数式接口::-> 等基本语法,可以大大减少代码量的编写,使代码更加优雅

  1. 只有一个抽象函数的接口,就是函数式接口
  2. :: 可以称之为域运算符,主要是用来获取方法
  3. -> 的语法为 (变量或参数)->{代码体},是匿名函数的写法。也叫变量和代码的分隔符
  4. 当只获取一个方法属性的时候 :: 和 -> 可以通用

介绍

接口:

  • 接口可以定义在另一个类的内部
  • 接口中的方法都是抽象方法
  • 接口中的常量都是静态常量

类:

  • 类可以定义在另一个类的内部
  • 也可以定义为内部静态类,使用 static 关键字
  • 还可以定义为局部内部类,定义在方法中

一、什么是Lambda表达式?

        lambda表达式是为了简写代码的写法

二、什么是函数式接口?

        只有一个抽象方法的接口就是函数式接口

//1.定义一个函数式接口。只有一个抽象方法的接口就是函数式接口
interface ILike{
    void testLambda();
}

三、什么是匿名内部类?

  1. 没有类名
  2. 必须借助接口或父类
  3. 通过实例化函数式接口就可以完成匿名内部类实现此接口并重写方法
//5.匿名内部类,没有类名称,必须借助接口
like = new ILike() {
    @Override
    public void testLambda() {
        System.out.println("i like lambda4");
    }
};
like.testLambda();


四、用 Lambda 简化匿名内部类的写法

  1. 匿名内部类是为了省去类名的写法
  2. Lambda 简化写法不但可以省去类名,还可以省去接口名和函数名。因为只有一个抽象方法,可以直接实现并指向这个抽象方法和方法体
//6.用lambda简化,因为接口中只有一个函数,所以可以直接省略实例化的接口名和函数名
like = () -> {
    System.out.println("i like lambda5");
};
like.testLambda();

结论

  1. 匿名函数写法和匿名类写法的前提必须基于函数式接口
  2. 匿名函数写法和匿名类写法其本质是同一个东西,只是简化写法不同
  3. 使用Lambda表达式简写匿名函数时,可以同时省略实现类名、函数名。除此外也可以使用传统写法
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值