Java基础系列16: 内部类
本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。
什么是内部类
在一个外部类的内部再定义一个类;
注意内部类有一些限制,比如不能被外界访问,如果定义为静态的就不能再访问外部类的变量.
但是内部类是可以访问外部类的所有成员变量的,包括private
使用内部类的好处
内部类可以继承自某个类,相当于提供了某种进入外围类的接口;
而且内部类能够独立的继承或者实现一个接口,而不用管外部类如何,也就是多重继承.
静态内部类
主要的特点是不依赖于外部类,以及不能访问非静态成员变量.
内部类的加载
1,内部类只会在第一次使用的时候加载,不使用就不加载
Java类加载的顺序:
规律一、初始化构造时,先父后子;只有在父类所有都构造完后子类才被初始化
规律二、类加载先是静态、后非静态、最后是构造函数。
静态构造块、静态类属性按出现在类定义里面的先后顺序初始化,同理非静态的也是一样的,只是静态的只在加载字节码时执行一次,不管你new多少次,非静态会在new多少次就执行多少次
规律三、java中的类只有在被用到的时候才会被加载
规律四、java类只有在类字节码被加载后才可以被构造成对象实例