2013-02-11 67 views
0

我想创建类B的实例,该实例不属于A的内部类的一部分。如何在java中使用相同的名称类实例

我该如何做到这一点?我希望两个B类的课程名称保持不变。 packageName.B:B类,即com.mypackage.mysubpackage.B为外Bcom.mypackage.mysubpackage.A.B为内B.

+0

所以_inside_你想创建一个'外'类B的实例吗? – 11684 2013-02-11 13:27:39

回答

4

使用完整的合格的名称。

不会工作如果类是在未命名(默认)包(即,如果没有package声明其.java文件的顶部)。这是另一个不使用未命名包的另一个原因(即所有的类都应该在一个已命名的包中)。

3

您可以使用B完全合格的名称总是指它的

public class Sample { 
    public static void main(String[] args) { 
     A a = new A(); 
     a.show(); 
    } 
} 

class A { 
    class B { 
     public void show() { 
      System.out.println("hello"); 
     } 
    } 

    public void show() { 
     B b = new B(); 
     b.show(); 
    } 
} 

class B { 
    public void show() { 
     System.out.println("hellohello"); 
    } 
} 
2

使用要创建实例的类的完整标识符(没有import语句)。

yourPackage.B variable = new yourPackage.B(); 
2

与下面的代码替换main方法:

public static void main(String[] args) { 

    A a = new A(); 
    a.show(); 
    //For Outer Class 
    B bOuter =new B(); 
    bOuter.show(); 

    //For Inner Class 
    A.B bInner=new A().new B(); 
    bInner.show(); 
} 
1

使用完全合格的名称来自中相同的类名称冲突保持距离。 例如packageName.A.BpackageName.B

相关问题