Day11

内部类

类中类

  • 成员内部类
  • 局部内部类

成员内部类

普通内部类

1.访问修饰权限4种

2.不能定义静态变量和方法

​ 成员内部类类加载:依赖外围类,外围类对象不一定存在。

​ 可以定义 final 修饰的常量,不通过类加载,编译时期就加入了常量池。

静态内部类

成员特点

int aIN;
private int bIn = 10;
static int cIn =20;
//普通方法也可以,构造方法,未写跟普通类无区分
//这叫做嵌套类,无static修饰是成员内部类,叫做内部类。
//借外部类隐藏自己,完全自己做一个独立类。

类加载机制

创建外围类,不会触发静态内部类加载

静态内部类创建对象不依赖外围类,不用管外围类对象是否存在。

但是创建的时候还是先加载外围类,再加载静态内部类。

继承

只能继承静态类

它访问外围类方式,由于是独立的,所以对象该创建还是要创建,由于先加载,所以能直接访问静态成员(类名访问也行),特别的,它和独立类的区别是,不受访问权限控制

同样的,外围类静态方法 访问静态内部类也不受访问权限控制,而且与外围类无关,不用先创建外围类对象,这是一个和普通内部类的区别。

局部内部类

定义在方法或者一个作用域里面的类。

由于作用域在方法体内,所以没有权限修饰符。

不可以创建静态的成员

也是内部类,访问外围类不受权限控制

匿名内部类

局部位置

语法

new 类名或者接口名(){}
//类名则代表扩展了这个类
//接口名代表实现了这个类
posted @ 2021-01-12 22:33  多米_dmxq#top  阅读(155)  评论(0)    收藏  举报