1.成员内部类
这里我们列举了outer和inner两个类的方法
其中out是外部类Outer的方法,而在Outer中还有一个Inner内部类,我们在这个Inner内部类中写了一个in方法作为内部类的方法。而我们在主函数中调用这个时,则
外部类还是通过new关键字来new出来,而内部类则需要通过外部类来实例化内部类outer.new Inner();然后通过快捷键来填充。
2.内部类可以直接访问外部类的私有变量
通过getID这个方法来获得外部类中定义的私有变量id = 10,最终输出10。
3.静态内部类
当我们给这个getID加上static使其成为静态方法,那么我们就无法访问外部类的id了,是因为静态方法是会被首先调用,也就是先会调用静态方法然后才会去调用这个id的值,那么我们也就无法获得这个id的值了,如果想获得的话,需要将id也变成静态变量才行。
4.class类
我们在public Outer外部类的外面还可以定义一个class类,但这个仅仅是一个大Java类下不同于Outer类的另一个大类,一个Java类中只能有一个public class类,但是可以有多个class类。这里的class类就可以当作测试类。
5.局部内部类
如图
6.匿名初始化类
正常来说我们定义了一个方法,类想要调用的话需要new关键字,这里是一个Apple类中的eat方法
这是实例化一个对象Apple并把这个对象的值赋给了apple。
而我们匿名初始化类的话,即可。匿名初始化类就是没有名字的初始化类,不用将实例保存到变量中。
7.接口在其中的应用
例如我们定义一个UserService的接口,并在其中定义一个hello方法。
暂时不要求掌握太多这类