[英]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
的外部B
和com.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.AB
和packageName.B
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.