内部类小结

内部类

方法内部类:
            定义在方法中,作用域仅限于方法内,不能使用任何权限修饰符。方法参数
         使用隐式final声明,即方法内部类只能使用方法参数,无法修改。
匿名内部类:
             ①定义方法中,必须实现一个接口或者继承一个抽象类。
             ②使用Lambda表达式要求接口中有且只有一个抽象方法。
             ③JDK8新增注解@FunctionalInterface,只能用于接口声明,
             检测当前接口中是否只有一个抽象方法。
Lambda表达式语法:
          1. 方法体实现只有一行:  ()  --> 具体实现代码;                                      
          2. 方法体有多行实现:
                 ()  --> {
                 方法体实现代码
                    };
          3.方法若有返回值:
            a.只有一行代码,return都可以省略
              ISubject subject = (r1,r2) -->r1 + r2;
            b.方法体有多行代码,此时return不能省略
              ISubject subject = (r1,r2) --> {
                       r1 =r1 + 10;
                       r2 =r2 + 20;
                       return  r1 + r2;           
                  };
方法引用:一般结合Lambda共同使用
        注释:引用的是方法的具体实现
            1.引用某个类的静态方法
                 ISubject< Integer,String> subject = String :: valueof;
                 //等同于使用String.valueof(10);
                 StringISubject.switchPara(10);
            2.引用某个对象的普通方法
                 ISubject<String> subject  = "hello" ::toUpperCase;
                 //等同于使用"hello".toUpperCase();
                 System.out.println(subject.SwitchPara());
            3.引用某个类的普通方法
            ISubject<Integer,String> iSubject = String :: compareTo();
            //等同于使用new String.compareTo("刘","杨");
            System.out.println(iSubject.switchPara("刘","杨"));
            4.引用某个类的构造方法
            ISubject<Person,Integer,String> subject = Person :: new;
            //等同于使用 new Person(40,"蛋哥");
            Person per = subject.createPerson(40,"蛋哥");
            System.out.println(per);                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值