这是可以的。
内部类根据位置的不同,可以分为两种情况。
1 内部类在成员位置,在这总情况下实现内部的实例对象方法是:外部类名.内部类名 名字 = 外部类对象.内部类对象
即Outter.Inner oi = new Outter().new Inner();
你所说的那种方法其实就是变形,将一个外部类对象的引用直接付给一个变量,这当然可以。
注意:若内部类被静态修饰时,则变为外部类名.内部类名 对象名 = new 外部类.内部类()
Outter.Inner oi = new Outter.Inner();而且Outter.new Inner()不能写成new Outter().new Inner()- class Outter
- {
- String name;
- class Inner//注意如果Inner类含有被static修饰的成员是,则Inner也必须被static修饰
- //当外部类的静态方法访问内部类时,该内部类Inner也必须为静态,
- {
- }
- public void show()
- {
- }
- }
复制代码 2 内部类在局部时可以直接访问外部类中的成员,也可以直接访问局部成员,但是局部成员要用final修饰。- class Outter
- {
- public void show()
- {
- class Inner
- {
- public void showIn()
- {
- }
- }
- Inner i = new Inner();
- i.showIn();
- }
-
- }
复制代码 |