内部类
一、概念
在一个类内部定义的类称为内部类。
内部类的类型:
1) 成员内部类(member inner class)
成员内部类与外部类的关系类似于寄生关系。在生成内部类对象时必须要有外部类对象,一个内部类对象一定对应着一个外部类
对象。
2) 静态内部类(static inner class)
静态内部类与外部类的关系类似于寄居关系,寄居只是借外部类的壳把自己隐藏起来,在生成内部类对象时不需要有外部类对象
3) 局部内部类(local inner class)
局部内部类与匿名内部类意义类似。
4) 匿名内部类 (anonymous inner class)
匿名内部类是一种特殊的局部内部类,它的语法比局部内部类更灵活。在生成对象的时候才给出接口的实现,可以实现运行时
的接口回调。
在一个类内部定义的类称为内部类。
内部类的类型:
1) 成员内部类(member inner class)
成员内部类与外部类的关系类似于寄生关系。在生成内部类对象时必须要有外部类对象,一个内部类对象一定对应着一个外部类
对象。
2) 静态内部类(static inner class)
静态内部类与外部类的关系类似于寄居关系,寄居只是借外部类的壳把自己隐藏起来,在生成内部类对象时不需要有外部类对象
3) 局部内部类(local inner class)
局部内部类与匿名内部类意义类似。
4) 匿名内部类 (anonymous inner class)
匿名内部类是一种特殊的局部内部类,它的语法比局部内部类更灵活。在生成对象的时候才给出接口的实现,可以实现运行时
的接口回调。
二、特性
1)
更小层次的封装,把一个类隐藏在另一个类的内部;
2) 能够方便的在内部类中访问外部类的私有成员;
使用内部类的原因:每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,
对于内部类都没有影响(也就是说,内部类是与外部类相对独立存在的)。
内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”(内部类允许继承多个类或
抽象类)。
2) 能够方便的在内部类中访问外部类的私有成员;
使用内部类的原因:每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,
对于内部类都没有影响(也就是说,内部类是与外部类相对独立存在的)。
内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”(内部类允许继承多个类或
抽象类)。
三、应用
修订:
参考:
注: