实现嵌套类
在Java中可以把一个类定义为另一个类的成员。这样的类称为嵌
套类,如下所示:
class EnclosingClass{
. . .
class ANestedClass {
. . .
}
}
可以用嵌套类反映和强制两个类之间的联系。作为一个类的
成员,嵌套类有自己的特权:可以对嵌套它的类的成员有不受
限制的权限,即使它们被定义为private。
和其它成员一样,嵌套类可以被定义为static,称为静态嵌套
类。非静态嵌套类称为内部类。如下面的例子:
class EnclosingClass{
. . .
static class AStaticNestedClass {
. . .
}
class InnerClass {
. . .
}
}
和静态方法和变量一样,静态嵌套类与嵌套它的类相关联。和
类方法一样,静态嵌套类不能直接指向嵌套它的类中定义的实
例变量或方法 - 只能通过对象参考来访问。
和实例方法和变量一样,内部类与嵌套它的类的实例相关,可
以直接访问对象的实例变量和方法。同时,因为内部类与实例
有关,它不能定义任何静态成员。