SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Creavite

    Creavite

    8 Mart 2009
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • The White House

    The White Ho

    21 Ocak 2006