20 Temmuz 2012, Cuma
Java boÅŸ bir baÅŸvuru statik alanlar
Java static üyeler (static alanları veya 3* *yöntemleri) kendi sınıfı yerine, bu sınıfın nesneleri ile ilişkilidir. Aşağıdaki kodu null başvuru statik bir alana erişmeye çalışır.
public class Main
{
private static final int value = 10;
public Main getNull()
{
return null;
}
public static void main(String[] args)
{
Main main=new Main();
System.out.println("value = " main.getNull().value);
}
}
main.getNull() null döner olsa da çalışır ve görüntüler value = 10. Bu kodu nasıl çalışır?
CEVAP
20 Temmuz 2012, Cuma
Bu davranış Java Language Specification belirtilen:
bir null başvuru özel durumu neden olmadan (static) sınıf değişken erişmek için kullanılabilir.
Daha fazla ayrıntı, bir Primary.staticField şöyle çalışır (vurgu benim) gibi static field evaluation, - senin durumunda, Primary = main.getNull():
- Birincil ifade değerlendirilirsonuç atılır. [...]
- Alan ise boş olmayan nihai bir alansonuç İlköğretim ifadenin türü, sınıf veya arabirim belirtilen sınıf değişken değeri.[...]
Bunu PaylaÅŸ:

Java - Neden bir arayüz tüm alanlar do...
Java "-by pass-baÅŸvuru" veya...
Java iç sınıf ve statik iç içe sınıf...
Neden Java statik olarak bir sınıf bil...
Neden't statik yöntemler Java'da ...