如何快速建立网站,做网站厂家,好123主页官网,建网站可以用企业qq吗面向对象思想#xff1a; 找能解决问题的对象 #xff0c;调用对象的方法 函数式编程思想#xff1a;只要能获取到结果#xff0c;强调做什么#xff0c;而不是以什么形式去做 实现Runnable代码#xff1a; 登录后复制 public class Demo {public static void main(Str… 面向对象思想 找能解决问题的对象 调用对象的方法 函数式编程思想只要能获取到结果强调做什么而不是以什么形式去做 实现Runnable代码 登录后复制 public class Demo {public static void main(String[] args) {Runnable rnew Runnable() {Overridepublic void run() {System.out.println(111);}};Thread tnew Thread(r);t.start();}
} 1.2.3.4.5.6.7.8.9.10.11.12. 简化省去了类名称额外定义接口的实现 登录后复制 new Thread(new Runnable() {Overridepublic void run() {System.out.println(111);}}).start(); 1.2.3.4.5.6. 编程思想转换 传递一段代码才是我们真正的目的创建对象只是受限于面向对象语法而不得不采取的一种手段和方法。如果我们将关注点从“怎么做”回归到“做什么”的本质上过程与形式其实并不重要 lambda表达式的引入 使用lambda表达式的重点就是延迟执行。(只在必要的情况才运行代码) Lambda标准格式 登录后复制 (参数类型 参数名称)-{代码语句} 1. ()接口中抽象方法的参数列表没有参数为空有参数就写多个参数用逗号分隔 - 传递把参数传递给方法体{} {}重写接口的抽象方法的方法体 例lambda实现cook接口 登录后复制 public interface Cook {void cook();
}
public class Demo {public static void main(String[] args) {invokeCook(()-{System.out.println(做饭);});}public static void invokeCook(Cook c){c.cook();}
} 1.2.3.4.5.6.7.8.9.10.11.12.13. 如果方法的参数是一个函数式接口那么可以使用lambda表达式化简 例person类对age升序排序 登录后复制 Person[] arr{new Person(4,a),new Person(3,b)};
Arrays.sort(arr,(p1,p2)-p1.getAge()-p2.getAge());
for(Person p:arr){System.out.println(p);} 1.2.3.4.5. 例计算器Calculator接口内涵calc可以将两个int数字相加得到和值 登录后复制 public interface Calcu {int cal(int a,int b);
}
public static void main(String[] args) {invokeCalc(10,30,(int a,int b)-{return ab;});}private static void invokeCalc(int a,int b,Calcu ca){System.out.println(ca.cal(a,b));return;} 1.2.3.4.5.6.7.8.9.10. lambda省略格式 可推导可省略凡是根据根据上下文推导出来的内容都可以省略书写 参数类型括号中参数列表的数据类型可以省略不写 参数列表括号中的参数如果只有一个那么类型和()都可以省略 return如果代码只有一行那么{}和return都可以不写 上例调用calula接口可以写为 登录后复制 invokeCalc(10,30,(int a,int b)-ab); 1. 对person按年龄排序可写为 登录后复制 Arrays.sort(arr,(Person p1,Person p2)-p1.getAge()-p2.getAge()); 1. 字符串按长度升序排序 泛型后面可以不写(可推导) 登录后复制 ArrayListStringlistnew ArrayList(); 1. Lambda使用前提 1、lambda必须有接口且要求接口中有且仅有一个方法 有且只有一个抽象方法的接口称为“函数式接口” 2、必须有上下文推断 函数式接口 【java笔记】函数式接口_暮色_年华的博客 lambda与函数式接口结合 lambda与runnable接口打印10次hello lambda与consumer结合:指出已经迭代的次数