(1)对象名引用成员方法
/**
* 通过对象名引用成员方法
* 使用的前提是对象名已经存在,成员方法也是已经存在的
* 就可以使用对象名来引用成员方法
*
*/
public class ObjMethodDemo {
public static void printString(Printable p){
p.print("aaa");
}
public static void main(String[] args) {
//使用匿名内部类实现接口的传递及接口中抽象方法的实现
printString(new Printable() {
@Override
public void print(String s) {
MethodRerObject mr = new MethodRerObject();
mr.printUpperCaseString(s);//调用对象的成员方法
}
});
//使用Lambda表达式优化上述匿名内部类
printString(s ->{
MethodRerObject mr = new MethodRerObject();
mr.printUpperCaseString(s);//调用对象的成员方法
});
//使用方法引用优化上述Lambda表达式
//方法引用中的的代码相当于接口内部实现的方法
MethodRerObject mr = new MethodRerObject();
printString(mr::printUpperCaseString);
}
}
(2)被引用成员方法所在的类