方法引用04_方法引用_通过this引用本类的成员

package com.itheima.demo08.ThisMethodReference;
/*

使用this引用本类的成员方法

*/
public class Husband {

//定义一个买房子的方法
public void buyHouse(){
    System.out.println("北京二环内买一套四合院!");
}

//定义一个结婚的方法,参数传递Richable接口
public void marry(Richable r){
    r.buy();
}

//定义一个非常高兴的方法
public void soHappy(){
    //调用结婚的方法,方法的参数Richable是一个函数式接口,传递Lambda表达式
   /* marry(()->{
        //使用this.成员方法,调用本类买房子的方法
        this.buyHouse();
    });*/

    /*
        使用方法引用优化Lambda表达式
        this是已经存在的
        本类的成员方法buyHouse也是已经存在的
        所以我们可以直接使用this引用本类的成员方法buyHouse
     */
    marry(this::buyHouse);
}

public static void main(String[] args) {
    new Husband().soHappy();
}

}
package com.itheima.demo08.ThisMethodReference;
/*

定义一个富有的函数式接口

*/
@FunctionalInterface
public interface Richable {

//定义一个想买什么就买什么的方法
void buy();

}

你可能感兴趣的:(java)