Java內隐类(Java Inner Class)

內隐类是一个定义在Class中的Class,有static和非static两种。inner class是外部类的一个成员变量。non-static的inner class可以访问外部类的所有变量。因为inner class是外部类的一个成员变量,其可以用public、private、protected和package private等modifier来定义。

Static Nested Classes

正如一个类的静态变量,static inner class属于其外部类,不属于外部类的instance(object),他不能访问外部类的非静态变量。static inner class只能通过外部类的instance(object)来访问外部类的非静态变量。

注意:

static inner class其实和普通的类基本一样。要想使用静态内部类需要使用以下格式:

OuterClass.StaticNestedClass  nestedObject =new  OuterClass.StaticNestedClass();

Non-static Inner Class

Non-static inner class与外部类的非静态成员变量类似,它属于外部类的instance(对象),能够访问外部类对象的所有成员变量和方法。由于其能够访问外部类对象的成员变量和方法,因此他不能定义静态变量和静态方法。

内部类的对象只能存在于外部类的对象之中

由于内部类的对象只能存在于外部类的对象之中,因此,要声明一个内部类的对象,需要先实例化外部类的一个对象。具体的语法格式如下:

OuterClass.InnerClass innerObject = outerObject.new InnerClass();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0d6c826ee931661be6a421a68f9d3d8a.html