Lambda表达式基础练习
Lambda表达式得格式:(形式参数)->{代码块}
Lambda表达式使用前提:
有一个接口
接口中有且仅有一个抽象方法
练习1:定义一个接口(Eatable),里面定义一个抽象方法:void eat();定义一个测试类(EatableDemo),在测试类中提供两个方法一个方法是:useEatable(Eatable e)一个方法是主方法,在主方法中调用useEatable方法
EatableDemo.java主文件
public static void main(String[] args) {
//在主方法中调用useEatable方法Eatable e = new Eatablelmpl();useEatable(e);//匿名内部类useEatable(new Eatable() {
@Overridepublic void eat() {
System.out.println("一天一苹果,医生远离我!!!");}});//Lambda表达式useEatable(()->{
System.out.println("一天一苹果,医生远离我!!!");});}private static void useEatable(Eatable e){
e.eat();}
Eatable.java接口文件
public interface Eatable {
void eat();
}
Eatablelmpl.java 实现类文件
public class Eatablelmpl implements Eatable{
@Overridepublic void eat() {
System.out.println("一天一苹果医生远离我!!!");}
}
练习2:定义一个接口(Flyable),里面定义一个抽象方法:void fly(String s);定义一个测试类(FlyableDemo),在测试类中提供两个方法一个方法是:useFlyable(Flyable f)一个方法是主方法,在主方法中调用useFlyable方法
FlyableDemo.java 主文件
public static void main(String[] args) {
//在主方法中调用useFlyable方法//匿名内部类useFlyable(new Flyable() {
@Overridepublic void Fly(String s) {
System.out.println(s);System.out.println("飞机自驾!!!");}});System.out.println("----------->");//Lambda表达式useFlyable((s)->{
System.out.println(s);System.out.println("飞机自驾!!!");});}private static void useFlyable(Flyable f) {
f.Fly("风和日丽,晴空万里!!!");}
Flyable.java 接口文件
public interface Flyable {
void Fly(String s);
}
练习3:定义一个接口(Addable),里面定义一个抽象方法:)定义一个测试类(AddableDemo),在测试类中提供两个方法一个方法是:useAddable(Addable a)一个方法是主方法,在主方法中调用useAddable方法
AddableDemo.java主文件
public static void main(String[] args) {
//匿名内部类useAddable(new Addable() {
@Overridepublic int add(int x, int y) {
return x+y;}});//Lambda表达式useAddable((int x,int y)->{
return x+y;});}private static void useAddable(Addable a){
int sum = a.add(10,20);System.out.println(sum);}
Addable.java接口文件
public interface Addable {
int add(int x,int y);
}