Day11
内部类
类中类
- 成员内部类
- 局部内部类
成员内部类
普通内部类
1.访问修饰权限4种
2.不能定义静态变量和方法
成员内部类类加载:依赖外围类,外围类对象不一定存在。
可以定义 final 修饰的常量,不通过类加载,编译时期就加入了常量池。
静态内部类
成员特点
int aIN;
private int bIn = 10;
static int cIn =20;
//普通方法也可以,构造方法,未写跟普通类无区分
//这叫做嵌套类,无static修饰是成员内部类,叫做内部类。
//借外部类隐藏自己,完全自己做一个独立类。
类加载机制
创建外围类,不会触发静态内部类加载
静态内部类创建对象不依赖外围类,不用管外围类对象是否存在。
但是创建的时候还是先加载外围类,再加载静态内部类。
继承
只能继承静态类
它访问外围类方式,由于是独立的,所以对象该创建还是要创建,由于先加载,所以能直接访问静态成员(类名访问也行),特别的,它和独立类的区别是,不受访问权限控制
同样的,外围类静态方法 访问静态内部类也不受访问权限控制,而且与外围类无关,不用先创建外围类对象,这是一个和普通内部类的区别。
局部内部类
定义在方法或者一个作用域里面的类。
由于作用域在方法体内,所以没有权限修饰符。
不可以创建静态的成员
也是内部类,访问外围类不受权限控制
匿名内部类
局部位置
语法
new 类名或者接口名(){}
//类名则代表扩展了这个类
//接口名代表实现了这个类
学习记录,并不保证内容的准确性。
浙公网安备 33010602011771号