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();

你可能感兴趣的:(java,object,Class,nested)