21 Kasım 2013, PERŞEMBE
Nasıl statik değiştirici bu kod etkiler?
İşte benim kod:
class A {
static A obj = new A();
static int num1;
static int num2=0;
private A() {
num1 ;
num2 ;
}
public static A getInstance() {
return obj;
}
}
public class Main{
public static void main(String[] arg) {
A obj = A.getInstance();
System.out.println(obj.num1);
System.out.println(obj.num2);
}
}
Çıkış 1 0, ama anlayamıyorum.
Biri bana bunu açıklayabilir mi?
CEVAP
21 Kasım 2013, PERŞEMBE
Java iki aşama gerçekleşir: 1. Kimlik, 2. Yürütme
kimlikfaz tüm statik değişkenler tespit edilir ve varsayılan değerler ile başlatıldı.
Åžimdi deÄŸerleri:
A obj=null
num1=0
num2=0İkinci aşama,yürütmeyukarıdan aşağıya başlar. Java, yürütme ilk statik üyelerinden başlar.
Burada ilk statik değişken.static A obj = new A();, ilk oluşturmak nesnenin değişken ve çağrı yapıcı, dolayısıyla değerinum1num2olur1.
Ve sonra,static int num2=0;num2 = 0;yapan idam edilecek.
Şimdi, bu kurucu gibi olduğunu varsayalım:
private A(){
num1 ;
num2 ;
System.out.println(obj.toString());
}
Bu obj class A bir referans yok gibi NullPointerException bir durum oluÅŸturur.
Bunu PaylaÅŸ:

Nasıl statik bir Harita Başlatmak miyi...
Nasıl C statik bir sınıf oluşturmak mı...
Nasıl bir div süpürdü olduğunda diğer ...
Nasıl statik değişkenleri başlatılamıy...
Nasıl bir büyük / küçük harf duyarlı b...