なぜ、エラーではなく、出力として10を与えるのですか?このコードの出力は10です、なぜですか?
public class A {
static int a = m1();
static int m1(){
return 10;
}
public static void main(String args[]) {
A a1 = null;
System.out.println(a1.a);
}
}
なぜ、エラーではなく、出力として10を与えるのですか?このコードの出力は10です、なぜですか?
public class A {
static int a = m1();
static int m1(){
return 10;
}
public static void main(String args[]) {
A a1 = null;
System.out.println(a1.a);
}
}
a
は静的変数であるので、A a1
への参照が参照解除されていないため。代わりにA.a
と書いて、コードをより直感的にすることができます。
コンパイラはここにとてもインテリジェントなので、基本的に、なぜそれがエラーを与えるだろう
System.out.println(A.a); //The name of your class 'A'
サイドノート:私はまだJavaそのような静的メソッド/変数を呼び出すことだけが混乱につながるので、ここでは 'a1.a'という表記を許可しています... –
と
を置き換え? – bcsb1001
「したい?スラングではなく、実際の英語の単語を気にするかもしれません。これはヤフーグループではありません。 –
Java用にスニペットを使用しないでください。 –