匿名内部类
在Java中调用某个方法时,如果该方法的参数是一个接口类型,除了可以传入一个参数接口实现类,还可以使用匿名内部类实现接口来作为该方法的参数。
匿名内部类其实就是没有名称的内部类,在调用包含有借口类型参er数的方法时,通常为了简化代码,不会创建一个接口的实现类作为方法参数传入,而是直接通过匿名内部类的形式传入一个接口类型参数,在匿名内部类中直接完成方法的实现。
创建匿名内部类的基本语法格式如下
new 父类接口(){
//匿名内部类实现部分
}
package shopcart;
public interface Abimal {
void shout()
}
package shopcart;
public class test11 {
public static void main(String[] args) {
String name ="小花";
//定义匿名内部类作为参数传递给animalShout()方法
animalShout(new Abimal(){
//实现shout()方法
public void shout() {
System.out.println(name+"喵喵。。。。");
}
}
);}
//定义静态方法animalShout(),接收接口类型参数
public static void animalShout(Abimal an) {
an.shout(); //调用传入对象的shout方法
}
}
Lambda表达式
一个Lambda 表达式由三部分组成,分别为 参数列表、"–>" 和表达式主题
其语法格式如下:
( [数据类型 参数名,数据类型 参数名,。。。。]) -> {表达式主体}
public class LambdaTest {
public static void main(String[] args) {
//使用Lambda表达式作为参数传递给 animalShout()方法
animalShout(()->System.out.println("Lambda表达式输出"));
//定义静态方法animalShout(),接收接口类型参数
public static void animalShout(Abimal an) {
an.shout(); //调用传入对象的shout方法
}