匿名内部类、内部类、匿名类、lambda表达式、非public类

2021年2月18日

发现Class类.getName()是包名.类名;
IDEA里看到不加public的外部类有一个package private的“同位语”。

访问不同包的public外部类需要import,非public外部类甚至不能访问,一定要访问则需要提到新.java里。
同包外部类可内部类以随便访问,访问别的类的内部类必须是静态内部类(封闭类,static)。

2021年2月15日

匿名内部类:在临时偶然需要一个子类或者实现类的时候,可以不起名字,直接new 父类/接口(),再修改、实现方法来定义该匿名类。
匿名类因为没有名字所以定义完只能用一次,匿名内部类可以用lambda表达式代替以简化掉无意义的代码。

2021年2月6日

一个.java文件里只能有一个public,不论类还是接口,而且要跟文件同名,内部的不管

内部类、匿名类(为什么某些代码明明可以正常写却写得很奇葩)+非public类

  • 成员内部类

    类和成员变量写在同一个地方,像成员变量一样被访问

    可以获得外部类的私有属性、私有方法

  • 静态内部类

    和成员内部类的区别是加了static,不能获得外部类的非static属性和非static方法

  • (临时补充).java中在public class以外的非public类

    一个.java文件里只能有一个public class,其他的class可以用来装测试用的psvm

  • 局部内部类

    装在方法里的类,类似局部变量

  • 匿名类

    class 类名 implements 接口名 {
        //实现接口
    };//非匿名类
    接口名 对象名 = new 接口名() {
        //实现接口
    }//匿名类,没有类名
    
posted @ 2021-02-02 22:10  口合口合kouhekouhe  阅读(117)  评论(0编辑  收藏  举报