什么是函数式接口?
定义
任何接口,只是包含一个抽象的方法,那么就是函数式接口
注意:这里的Lambda函数式编程,在这里面必须只有一个函数
下面是没有参数的情况下实现的函数式编程
package com.ano;
/**
* 这里采用Lambda的表达式
* 这里擦爱用多种方法实现那
*
*/
//接口定义
interface Like{
public void say();
}
//定义实现类
class Eg implements Like{
@Override
public void say() {
System.out.println("定义实现类");
}
}
public class Lambedeg {
//定义静态内部类
static class Eg1 implements Like
{
@Override
public void say() {
System.out.println("定义静态内部类");
}
}
public static void main(String[] args) {
Like eg = new Eg();
eg.say();
Like eg1 = new Eg1();
eg1.say();
//局部内部类
class Eg2 implements Like{
@Override
public void say() {
System.out.println("局部内部类");
}
}
new Eg2().say();
//匿名内部类,没有类的名称
Like eg3 = new Like() {
@Override
public void say() {
System.out.println("这里是匿名内部类");
}
};
eg3.say();
//这里是使用Lamb的方式实现,这里实现对名称的简化操作,使得操作更加简化。
Like eg4 = () -> {
System.out.println("这里是lambda方式");
};
eg4.say();
}
}
上面展示了有参数的方法的情况,下面展示没有参数的情况下的内部的情况
package com.ano;
//这里展示的是有参数的函数式编程
interface Egg{
public void say(int a);
}
interface Egg2{
public void say(int a,int b);
}
public class HaveInt {
//根据上面的公式的情况下,就不重复写了,这里只是展示Lambda的操作
public static void main(String[] args) {
//简化1
Egg egg = (int a) -> {
System.out.println("公鸡叫了"+a);
};
egg.say(1);
//简化2
Egg egg1 = a -> {
System.out.println("公鸡叫了"+a);
};
egg1.say(2);
//简化3
Egg egg2 = a -> System.out.println("公鸡叫了"+a);
egg2.say(3);
//这里要注意对于多个参数要进行不同的操作进行实现。
//必须是函数式编程
//多个参数类型必须加括号
//简化1
Egg2 egg21 = (int a,int b) -> {
System.out.println("公鸡叫了"+a);
};
egg21.say(2,3);
//简化2
Egg2 egg22 = (a,b) -> {
System.out.println("公鸡叫了"+a);
};
egg22.say(2,3);
//简化3
Egg2 egg23 = (a,B) -> System.out.println("公鸡叫了"+a);
egg23.say(3,4);
}
}