gpt4 book ai didi

java:嵌套类定义 - 名称是否冲突? (OCPJP)

转载 作者:行者123 更新时间:2023-12-01 12:28:06 25 4
gpt4 key购买 nike

我创建了这个测试问题,看看很多关于内部类的 OCPJP 问题看起来像是有目的的名称冲突。问题:我如何创建 id = 1 的 A 类实例。

class A{ int id = 1; }

class Bag {
static class A{ int id = 2; }
}

public class InnerClasses
{
static class A{ int id = 3; }

public static void main(String[] args)
{
A A1 = new A();
Bag.A A2 = new Bag.A();
A A3 = new A();

System.out.println(A1.id); //prints 3
System.out.println(A2.id); //prints 2
System.out.println(A3.id); //prints 3
}
}

最佳答案

您在名为 A 的单独 java 文件中定义类 A,并通过使用完整包名称调用构造函数来实例化它。像这样:

com.mypackage.A A1 = new com.mypackage.A(); 
Bag.A A2 = new Bag.A();
A A3 = new A();

System.out.println(A1.id); //prints 1
System.out.println(A2.id); //prints 2
System.out.println(A3.id); //prints 3

尽管定义同名内部类的目的只是为了覆盖其他类的定义。所以这有点超出了重点......

关于java:嵌套类定义 - 名称是否冲突? (OCPJP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26178918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com