一.局部内部类
定义在方法内部,使用较少

二.实例内部类
定义在类内部方法外部

注意事项及应用:
1.在实例内部类中可直接调用外部类的成员属性及方法

2.实例内部类的实例化依赖于外部类对象,因此先有内部类才有外部类。在实例化时,需先对外部类进行实例化产生对象然后以
OuterClass.Innerclass innerClass = 外部类对象.new InnerClass();
对内部类进行实例化

3.在实例内部类中直接调用外部类与部类重名的方法属性时,优先调用内部类自己的

4.若想在内部类中调用重名外部类的方法属性,需在内部类中实例化外部类对象通过对象的引用调用。

5.在外部类及其它类中不能直接访问内部类成员,必需通过实例化内部类对象访问。
三.静态内部类
定义在类中方法外部的被static修饰的类
1.静态内部类不依赖于外部类对象,在实例化时不需先创建外部类对象采用以下方法
OuterClass.InnerClass innerclass = new OuterClass.IneerClas();

2.静态内部类中不能直接外部类中的非静态成员,可以在内部类中实例化外部类对象进行访问。可以直接访问静态成员。
四.匿名内部类
匿名内部类在方法中使用可以认为是一个类实现了一个接口并重写了接口中的方法。
定义方法:
new 接口(){
方法 重写
}

也可以通过接口数据类型进行接收

2262

被折叠的 条评论
为什么被折叠?



