zoukankan      html  css  js  c++  java
  • java8新特性

    今天晨跑挑战了一下自我,然后膝盖疼的不能走路了,然后我突然想到了java11都要出来了,我java8新特新都没学过,最关键的是现在工作用的还是6...看起来毫无关联,但就这么联系到了一起,然后决定趁今天没事干学习一下

    接口中的方法:

      这是接口

      

      这是实现类,不重写任何方法

      

      这里并没有static修饰过的方法b以及变量c,只有default修饰过的方法a

      

    多实现:

      假如一个类实现了多个接口,这些接口都有一个相同的方法default void a(),实现类可以通过: 接口.super.方法 的方式指定调用哪个接口中的方法

      

    lambda表达式: 

      说明(复制的别人的):
      (参数1,参数2…)表示参数列表;->表示连接符;{}内部是方法体
      1、=右边的类型会根据左边的函数式接口类型自动推断;
      2、如果形参列表为空,只需保留();
      3、如果形参只有1个,()可以省略,只需要参数的名称即可;
      4、如果执行语句只有1句,且无返回值,{}可以省略,若有返回值,则若想省去{},则必须同时省略return,且执行语句也保证只有1句;
      5、形参列表的数据类型会自动推断;
      6、lambda不会生成一个单独的内部类文件;
      7、lambda表达式若访问了局部变量,则局部变量必须是final的,若是局部变量没有加final关键字,系统会自动添加,此后在修改该局部变量,会报错;

      先来个简单的:

        定义一个接口

        

        然后再来一个类,类里边有一个变量i,值为12,用普通的new一个接口的方式:

        

        然后再看看lambda表达式的写法,这里控制台是不会打印aaa的,因为只是将方法体和参数赋值给了接口,但是并没有调用接口中的方法

        

        嗯~~~有点像js,一个语句然后赋值给一个变量: var a = $("a").val()...

       然后就是有参数的:

        这是一个接口

        

        这是类里的方法,这里是会输出aaaaa的:

        

        解释一下这里,因为lambda表达式是只能作用于函数接口,就是只有一个没有方法体的方法的接口,代码中的a表示方法参数的变量名,类型表达式自动判断,      ->后面的输出语句表示方法体,因为只有这么一句所以直接省略了{}.最后返回给接口对象.这个代码的目的是要输出传入的值.所以最后接口对象调用相应                  的方法传入要输出打印的值就出结果了.没错,这里是先设定方法体以及变量名,然后再返回接口对象,最后才调用方法执行方法体...

        还可以这样,类中加一个调用接口的方法

        

        然后调用这个方法:

        

      然后是多个参数:

        接口

        

        表达式,这时候发现,参数名必须在括号内,否则就报错了:

        

        或者这样写:

        

        测试一下:

        

      上面全是没有返回值的,接下来是有返回值的

        来个简单的:

        

        然后是使用表达式:

        

        上面看出来return是灰色的,代表可以省略,最上面说的,return省略的时候{}也必须省略:

        

        接下来是多惨,快速过一下,一个参数就省了:

        

        类:

        

      接下来是表达式的其他特性

        引用类方法(下面的格式是抄的别人的...): 

          <函数式接口> <变量名> = <类>::<类方法名称>
          //调用
          <变量名>.接口方法([实际参数...])

          大概的意思是用自己的接口中的那个函数式方法(是叫这个吧)去引用别的类中的方法,接口中的方法参数必须于要引用的类中的参数的数量和类型都

          相同,但是方法名不用相同...

          接口:

          

          类:

          

        引用类实例的方法:

          

        

  • 相关阅读:
    正则表达式全部符号解释
    如何在开机启动时自动打开小键盘灯
    SQL SERver2005中row_number() 的用法
    用命令打开控制面板的各项
    SQL Server 2008 对 TSQL 语言的增强
    SQL2000DBCC DBREINDEX重建索引提高SQL Server性能
    Sql Server 中常用的字符串函数
    coalesce的用法
    word to PD R qm addin 运行时错误‘91’
    Windows系统:开始–运行–命令大全
  • 原文地址:https://www.cnblogs.com/erxiaoouba/p/9140997.html
Copyright © 2011-2022 走看看