static
メンバーはjvm
のclassloader
がクラスをロードするときに自動的にロードされたこれらのstatic
Members.`
にアクセスするためのオブジェクトの必要がないその手段class
レベルのメンバーです。そこでここでは、この場合の
static String name = " JavaQuiz"; //load when class get loaded by JVM class loader.
このstatic
変数意志がクラスFoo
がjvm
にロード取得された直後のメモリに存在します。
static Foo getFoo() { //method is also a static Member automatically loaded at Class Loading.
System.out.print("Getting Object");
return null;
}
この静的メソッドgetFoo()
でも同じことが適用されます。
だからSystem.out.println(getFoo().name);
です。ここ は私の答えをabbriviateする例である
class StaticExample
{
static String abc ="India";
public static void main (String[] args) throws java.lang.Exception
{
StaticExample obj = null;
System.out.println("Value is ==>" + obj.abc + StaticExample.abc + abc);
}
}
出力: -
ここ
Value is ==>IndiaIndiaIndia
のコード行も出力を生成します。
System.out.println(((Ideone)null).abc); // this will also print India.
出力: -
Value is ==>India
注: - .name
が曖昧になる場合、私は混乱についてgetFoo()
方法があると思いますが。 name
はスタティックメンバーなので、className
またはnull
という参照を使用してアクセスできます。したがって、ここでは、このname
変数にすべてのnull参照でアクセスするような状況が想定されます。
希望があります。
私は、これはおそらくSOに書き込むコメントの種類ではないことを知っています。しかし、あなたの知識は本当に驚異的です。常にあなたの答えから学ぶ。 :) –