带static关键字的就是静态方法,不带static关键字的就是成员方法。
二者调用有区别,常规的调用方法是:1、类名称.静态方法;2、创建对象;对象名称.成员方法;
方法引用是针对lamda表达式而言的,lamda表达式又是针对函数式接口所使用的。方法引用有很多种,本文介绍引用成员方法和静态方法的两种。
创建函数式接口:
@FunctionalInterface
public interface Sitter {
public abstract void makefood(String food);
}
方法引用:
public class Demo13Evoke {
public static void main(String[] args) {
method(food -> System.out.println("将" + food + "做成美味的食物。")); // lamda的方法体
System.out.println("===========================");
// 方法引用
method(Demo13Evoke::myPrint); // 静态方法的引用,类名称::方法名称
Demo13Evoke.myPrint("地瓜");// 静态方法的调用
System.out.println("===========================");
Demo13Evoke demo = new Demo13Evoke();
method(demo::myPrint2);// 成员方法的引用,对象名称::方法名称。首先要创建对象
demo.myPrint2("番薯"); // 成员方法的调用
System.out.println("===========================");
method(System.out::println); // 对象名::成员方法
}
public static void method(Sitter sitter) {
sitter.makefood("土豆");
}
public static void myPrint(String string) { // 静态方法
System.out.println("将" + string + "做成美味的食物。");
}
public void myPrint2(String string) { // 成员方法
System.out.println("将" + string + "做成美味的食物。");
}
}