Java从入门到放弃17

JDK1.8新特性

接口的默认方法

  • 接口里可以有实现的方法,方法default(需要写出来)关键字;
  • 接口里可以有实现的静态方法,在方法前面加static关键字。
package com.hqyj;

public interface Interface8 {
   
    //接口里面的方法如果添加default关键字,这个方法可以在接口里面实现
    //一个接口里可以有多个default方法
    //加了default关键字的方法必须要实现
    default void showName(){
   
        System.out.println("jdk1.8默认的接口方法");
    }

    //接口中加了static关键字的方法必须要实现
    //一个接口可以有多个静态方法
    static void methodStatic(){
   
        System.out.println("jdk1.8的接口可以用静态实现的方法");
    }
}

测试代码:

public class Interface8Impl implements Interface8 {
   
    public static void main(String[] args) {
   
        Interface8Impl interface8 = new Interface8Impl();
        interface8.showName();
        Interface8.methodStatic();
    }

}

函数式接口

  1. 接口只有一个抽象方法,可以有其他的实现方法;

  2. 函数式接口一般在接口名称上添加注解@FunctionalInterface,添加注解后,会校验接口里面是否只有一个抽象方法;

  3. 函数式的接口跟注解@FunctionalInterface没有必然关系,只要符合第一条要求,不添加注解也是函数式接口。

作用:函数式接口在实现的时候可以用朗姆达lambda表达式(箭头函数)

package com.hqyj;

@FunctionalInterface  //添加注解强制进行语法检查接口是否只有一个抽象方法
public interface MyFuncInterface {
   
    //一个接口如果只有一个抽象方法,这个接口就是函数式接口
    //只要满足只有一个接口方法,即便不添加注解@FunctionalInterface,也是函数式接口,注解的目的只是限制的作用
    int sum(int a, int b);
    
    default void fun1(){
   
        
    }
    
    static void fun2(){
   
        
    }
}

朗姆达表达式 lambda

是方法简化的写法,例如:

int sum(int a, int b){

​ return a + b;

}

lambda表达式:

​ (a, b) -> {a + b}

Lambda表达式:

    //方法体只有一行代码,不用大括号,也不要分号,参数不需要写类型
    //()-> 5 //无参方法,返回5,方法体只有一行代码,这行代码结果自动作为返回值没有参数要写小括号。
    // x -> 2 * x //一个参数x,返回2*x,一个参数可以不写小括号
    // (x, y) -> x - y //两个参数x和y,返回结果是x-y
    // () -> {多行代码} //方法体有多行代码需要大括号

Lambda表达式与函数式接口配合使用

  • 接口函数式定义
@FunctionalInterface
public interface MathOpreation {
   
    int opt(int a, int b);
}
  • 用Lambda表达式实现接口并创建对象,调用接口方法
package com.hqyj;

public class MathOpreationTest {
   
    public static void main(String[] args) {
   
        //加法
        MathOpreation add = (a, b) -> (a + b);
        //减法
        MathOpreation sub = (a, b) -> (a - b);
        //乘法
        MathOpreation 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深夜食堂℃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值