相关疑难解决方法(0)

静态变量与Java中的静态类名称相同时会发生什么?

在下面的java示例中,任何人都可以解释为什么程序的输出是"橙色"?(这是面试问题)

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

class X {
  static W Y = new W();
  static class Y {
    static String Z ="Apple";
  }
}

class W {
  String Z = "Orange";
}
Run Code Online (Sandbox Code Playgroud)

java

6
推荐指数
1
解决办法
1509
查看次数

执行主类后的输出不同

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

class X {
    static class Y {
        static String Z = "Result 1";
    }
    static C Y = new C();
}

class C {
    String Z = "Result 2";
}  
Run Code Online (Sandbox Code Playgroud)

有时输出是"Result 1",有时输出是"Result 2".你能解释一下原因吗?

我在用JDK 1.6_33.

java

5
推荐指数
1
解决办法
117
查看次数

标签 统计

java ×2