嵌套类为一个声明在另一个类或接口内部的类,有两种类型,静态内部类和非静态嵌套类,非静态嵌套类也称为内部类。
- 静态嵌套类可以有静态成员,用以下格式OuterClassName.InnerClassName引出嵌套类,内部类不可以
- 像实例方法,内部类可以访问外层类的静态和非静态成员,包括他的private成员,静态嵌套类之恩那个访问外层类的静态成员
无需先创建外层类的实例就可以创建静态嵌套类的实例,相反,在实例化内部类之前必须先创建包住内部类的外层类的实例。
内部类有下面的几个优点
1.内部类可以使用外层类的所有成员
2.内部类可以帮助完成完全隐藏类的实现
3.内部类提供了一种在Swing和其他基于事件的应用程序中编写监听器的快捷方法。
要从外层类的外部创建内部类的实例,需要使用下面的语法:
EnclosingClassName.InnerClassName inner = enclosingClassObjectReference.new InnerClassName()
在内部类的内部使用关键字this就可以引用当前内部类的实例,要引用外层类的实例则要使用以下语法:EnclosingClassName.this。