内部类

内部类

1.1 内部类概述
内部类:就是在一个类中定义一个类。

内部类访问特点
* 内部类可以直接访问外部类的成员,包括私有。
* 外部类要访问内部类的成员,必须创建对象。

1.2 成员内部类

按照内部类在类中定义位置同步,可以氛围如下两种形式
* 在类的成员位置:成员内部类
* 在类的局部位置:局部内部类

成员内部类,外界创建对象并使用:
格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
示例:Outer.Inner oi = new Outer().new Inner();

1.3 局部内部类
局部内部类实在方法中定义的类,所以外界无法直接使用,需要在方法内部创建对象并使用
该类可以直接访问外部类的成员,也可以访问方法内的局部变量。

1.4 匿名内部类 (本质:是一个继承了该类或者实现了该接口的子类匿名对象)
前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类
格式: new 类名或者接口名(){ 重写方法 }
范例: new Inter(){ public void show(){} }

1.5 静态内部类 (内部类本身就不太常用,这个感觉更不常用了)
用static修饰的内部类和Inner Class有很大的不同,它不再依附于Outer的实例,而是一个完全独立的类,因此无法引用Outer.this,
但它可以访问Outer的private静态字段和静态方法。如果把StaticNested移到Outer之外,就失去了访问private的权限。



posted @ 2021-01-03 13:39  year12  阅读(139)  评论(0编辑  收藏  举报