编程思想:
面向对象思想:强调对象,做一件事先去找到能做这件事的对象,然后再调用它的方法。
优点:方便管理,更加符合现实世界中的解决问题的方式。
缺点:代码冗余臃肿。比如为了要调用一个Runnable接口的run()方法,
缺不得不创建一个类去实现这个接口。而我们其实真正关心的确实run()方法中的代码而已。
面向过程(函数思想):强调的是结果,给出参数得到结果。不关心谁去做,怎么做。
优点:专注于一件完成事或者实现一个功能。
缺点:当程序体积过大后就难以管理了,过去大量的函数将会使得程序的维护变得很困难。
Java是典型的强制面向对象的语言,但是在JDK8后加入了一个新特性——Lambda表达式。
格式:
([参数列表])->{
//代码快
}
解释:
()用于声明代码块中的用到的参数
-> 指向代码段
{} 代码段落
例如:用Lambda表达式实现Runnable接口实现多线程
public class Domain{
public static void main(String[] args){
//匿名内部类,启动线程
new Thread(new Runnable(){
@Override
public void run(){
System.out.println("匿名内部类实现:"+Thread.currentThread().getName);
}
}).start();
//Lambda表达式方式
new Thread(()->{
System.out.println("Lambda表达式实现:"+Thread.currentThread().getName);
})
}
}
由上面例子可以看出,lambda表达式的简洁之处。
使用Lambda表达式的条件:
- 必须是在有且仅有一个抽象方法的接口上来使用。
- lambda表达式必须具有上下文推断环境中实现。
- lambda表达式()中的参数类型是可以省略的,因为可以通过接口中的抽象方法的声明推断出来。
- 只有一条语句的方法可以省略{}和分号还有return的,因为返回值也是可以推断出来的。
- 注意:lambda表达式中的{},分号,return要省略必须一起省略的。
- 备注:在Java中只有一个抽象方法的接口称之为"函数式接口"。
Lambda表达式的省略写法:
new Thread(()->System.out.println("Lambda表达式实现:"+Thread.currentThread().getName))
补充带参数的接口
new Thread((int a)->System.out.println("参数"+a));
初学小白,有错误或者不足之处欢迎指出或者补充。