匿名内部类、内部类、匿名类、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 接口名() { //实现接口 }//匿名类,没有类名