簡體   English   中英

如何在Java中使用同名類的實例

[英]How to make instance with same name class in java

我想創建一個類B的實例,該實例不是A的內部類的一部分。

我該如何實現? 我希望兩個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");
    }
}

使用B類,即完全合格的名稱com.mypackage.mysubpackage.B的外部Bcom.mypackage.mysubpackage.AB的內部B.

您可以使用B的全限定名來始終引用它: packageName.B

如果該類在未命名(默認)包中(即,如果在其.java文件頂部沒有package聲明),則此方法將無效 這是根本不使用未命名程序包的另一個原因(即,所有類都應位於已命名程序包中)。

使用要創建其實例的類的完整標識符(無import語句)。

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

將您的主要方法替換為以下代碼:

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

使用完整的限定名可以避免相同類名之間的沖突。 例如packageName.ABpackageName.B

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM