gpt4 book ai didi

java - 静态嵌套类,静态属性访问。脑筋急转弯

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:10 27 4
gpt4 key购买 nike

有人可以解释一下为什么在此代码段中对 X.Y.Z 的调用等同于 C.Z 吗?调用 X.Y.Z 意味着:- 它静态访问类 X然后- 属性 Y - 类型 C-(不是 Y 类)然后- C 中的属性 Z 导致输出“life is pain”。

但为什么调用 X.Y 访问的是属性而不是类?这背后的理论是什么?

public class A {
public static class X {
public static class Y {
public static String Z = "life is good";
}
public static C Y;
}

public static class C {
public static String Z = "life is pain";
}

public static void main(String[] args) {
System.out.println(X.Y.Z);
}
}

谢谢你的时间

最佳答案

没有什么特别有趣的,它归结为 JLS 指定的名称解析过程中的优先顺序。名称 X.Y 不明确,必须优先选择两个选项之一。

如果你真的对血淋淋的细节感兴趣,有一个 whole chapter in the JLS关于这个主题(我的猜测是,一旦您意识到自己打开了一个多么大的黄 hive 穴,您的兴趣就会很快减弱:)

关于java - 静态嵌套类,静态属性访问。脑筋急转弯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174714/

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