A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2019-5-23 16:36 编辑

.Lambda表达式
个人理解:
把一个编码过程尽量进行简化,但如果有了多条语句的时候,基本上能精简的特别少
启用线程例题是一个很好的例题
[Java] 纯文本查看 复制代码
//方式一的线程类
public class MyRunnable implements Runnable {
​
   @Override
   public void run() {
       System.out.println("多线程程序启动了");
   }
}
​
public class LambdaDemo {
   public static void main(String[] args) {
       //方式一
//        MyRunnable my = new MyRunnable();
//        Thread t = new Thread(my);
//        t.start();
​
       //方式二
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                System.out.println("多线程程序启动了");
//            }
//        }).start();
​
       //方式三
       new Thread( () -> {
           System.out.println("多线程程序启动了");
       } ).start();
   }
}

但很多时候还是用的不是很习惯,用惯了以前的繁琐式编码,用上了这个表达式,总觉得是缺胳膊掉腿
(其实还是很好用的......)
Lambda表达式的标准格式【理解】

  • 格式:
              ​ (形式参数) -> {代码块}
  • 形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可
  • ->:由英文中画线和大于符号组成,固定写法。代表指向动作
  • 代码块:是我们具体要做的事情,也就是以前我们写的方法体内容
  • 组成Lambda表达式的三要素:
  • 形式参数,箭头,代码块
1.3Lambda表达式练习1
[Java] 纯文本查看 复制代码
//接口[/size][/font][/color][/align]public interface Eatable {
   void eat();
}
//实现类
public class EatableImpl implements Eatable {
   @Override
   public void eat() {
       System.out.println("一天一苹果,医生远离我");
   }
}
//测试类
public class EatableDemo {
   public static void main(String[] args) {
       //在主方法中调用useEatable方法
       Eatable e = new EatableImpl();
       useEatable(e);
​
       //匿名内部类
       useEatable(new Eatable() {
           @Override
           public void eat() {
               System.out.println("一天一苹果,医生远离我");
           }
       });
​
       //Lambda表达式
       useEatable(() -> {
           System.out.println("一天一苹果,医生远离我");
       });
   }
​
   private static void useEatable(Eatable e) {
       e.eat();
   }
}


这次视频老师终于不拿林青霞举例子了,可是又跟苹果干上了..........

  • Lambda表达式的使用前提
  • 有一个接口
  • 接口中有且仅有一个抽象方法
  • 练习描述
              ​ 无参无返回值抽象方法的练习
  • 操作步骤
  • 定义一个接口(Eatable),里面定义一个抽象方法:void     eat();
  • 定义一个测试类(EatableDemo),在测试类中提供两个方法
  • 一个方法是:useEatable(Eatable     e)
  • 一个方法是主方法,在主方法中调用useEatable方法



总得来说.Lambda表达式在很大程度上简化了程序的书写过程,不过精简的太过头有时候自己都有些看不懂,初学的小伙伴还是最好掌握这种方法

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马