练习2:
定义一个接口(Flyable),里面定义一个抽象方法:void fly(String s);
定义一个测试类(FlyableDemo),在测试类中提供两个方法
一个方法是:useFlyable(Flyable f)
一个方法是主方法,在主方法中调用useFlyable方法
package com.aynu18;
//练习2:
//
// 定义一个接口(Flyable),里面定义一个抽象方法:void fly(String s);
//
// 定义一个测试类(FlyableDemo),在测试类中提供两个方法
// 一个方法是:useFlyable(Flyable f)
// 一个方法是主方法,在主方法中调用useFlyable方法
public class FlyableDemo {
public static void main(String[] args) {
//在主方法中调用useFlyable方法
//匿名内部类
useFlyable(new Flyable() {
@Override
public void fly(String s) {
System.out.println(s);
System.out.println("飞机自驾游");
}
});
System.out.println("--------");
//Lambda
useFlyable((String s) -> {
System.out.println(s);
System.out.println("飞机自驾游");
});
}
private static void useFlyable(Flyable f){
f.fly("风和日丽,晴空万里");
}
}
package com.aynu18;
public interface Flyable {
void fly(String s);
}
风和日丽,晴空万里
飞机自驾游
--------
风和日丽,晴空万里
飞机自驾游
练习3:
定义一个接口(Addable),里面定义一个抽象方法:int add(int x,int y);
定义一个测试类(AaddableDemo),在测试类中提供两个方法
一个方法是:useAddable(Addable a)
一个方法是主方法,在主方法中调用useAddable方法
package com.aynu18;
//练习3:
//
// 定义一个接口(Addable),里面定义一个抽象方法:int add(int x,int y);
// 定义一个测试类(AaddableDemo),在测试类中提供两个方法
// 一个方法是:useAddable(Addable a)
// 一个方法是主方法,在主方法中调用useAddable方法
public class AaddableDemo {
public static void main(String[] args) {
//在主方法中调用useAddable方法
//lambda
useAddable((int x,int y) ->{
return x+y;
// return x-y;
});
}
private static void useAddable(Addable a){
int sum = a.add(10, 20);
System.out.println(sum);
}
}
package com.aynu18;
public interface Addable {
int add(int x,int y);
}
30
Lambda表达式的省略模式
参数的类型可以省略,但是有多个参数的情况下,不能只省略一个 如果参数有且仅有一个,那么小括号可以省略 如果代码块的语句只有一条可以省略大括号和分号,如果有return,return也要省略掉
package com.aynu18;
public class LambdaDemo {
public static void main(String[] args) {
// useAddable((int x,int y)->{
// return x+y;
// });
// useAddable(( int x, int y)->{
// return x+y;
// });
//参数的类型可以省略
// useAddable(( x, y)->{
// return x+y;
// });
//但是有多个参数的情况下,不能只省略一个
// useAddable(( int x, y)->{
// return x+y;
// });
// useFlyable((String s)->{
// System.out.println(s);
// });
// useFlyable(( s)->{
// System.out.println(s);
// });
//如果参数有且仅有一个,那么小括号可以省略
// useFlyable( s->{
// System.out.println(s);
// });
//如果代码块的语句只有一条可以省略大括号和分号
useFlyable( s->
System.out.println(s)
);
//如果代码块的语句只有一条可以省略大括号和分号,如果有return,return也要省略掉
useAddable(( x, y)->
x+y
);
}
private static void useFlyable(Flyable f){
f.fly("风和日丽,晴空万里");
}
private static void useAddable(Addable a){
int sum = a.add(10,20);
System.out.println(sum);
}
}
package com.aynu18;
public interface Flyable {
void fly(String s);
}
package com.aynu18;
public interface Addable {
int add(int x,int y);
}
风和日丽,晴空万里
30