1. 本地内部类 (相对不重要)
定义在方法中的类
缺点:只能够在本方法中使用
2. 实例内部类
- 在实例内部类当中,不能定义一个静态的成员变量!非要定义,只能定义一个静态常量
- 如何实例化,实例化内部类的对象 ?
外部类名.内部类名 变量名称=外部类对象的引用.new 内部类();
- 实例化内部类当中,如果包含了和外部类同名的成员变量,那么如何在实例内部类当中访问?
实例化内部类当中,包含两个this,一个是外部类的this,一个是自己的this;
(this表示当前对象的引用)
2. 静态内部类
-
如何实例化 静态内部类对象?
因为是静态的,所以直接通过类名可以访问,只需要实例化外部类如何直接访问即可 ,如图:
-
如何访问外部类的普通成员变量
如图 直接访问访问不了
我们需要先把外部类实例化出来,通过对象引用去访问
或者通过调用构造方法传参也可以访问;
总之,要访问外部类普通成员变量,需要先将外部类实例化(因为其不是static的),通过对象的引用去访问;
3. 匿名内部类
如图,通过匿名对象,可以构造出匿名内部类 ,然后重写外部类的方法
此时调用test方法,调用的就是内部类中重写的test方法:
- over~