CodeGym /Kurslar /Java Çekirdeği /Değişken başlatma sırası

Değişken başlatma sırası

Java Çekirdeği
Seviye, Ders
Mevcut

"Merhaba Amigo! Bugün Bilaabo, değişkenlerin başlatılma sırası hakkında konuşacak ."

Bir koda baktığınızı hayal edin. Değişkenler hangi değerleri alıyor?

kod
class Cat
{
 public int a = 5;
 public int b = a + 1;
 public int c = a * b;
}
kod
class Cat
{
 public int a = getSum();
 public int b = getSum() - a;
 public int c = getSum() - a - b;

 public int getSum()
 {
  return a + b + c;
 }
}

"Buna gerçekten izin var mı?"

"Elbette. Bir sınıfın üye yöntemlerinin ve alanlarının bildirilme sırası önemli değildir. "

Bir sınıf yukarıdan aşağıya yüklenir, bu nedenle bir alanın yalnızca zaten yüklenmiş olan diğer alanlara erişmesi önemlidir. Örnekte b , a öğesine erişebilir , ancak c hakkında hiçbir şey bilmez .

"Peki ne olacak?"

"Değişkenler oluşturulduğunda, varsayılan değerler alırlar."

kod gerçekten ne oluyor
class Cat
{
 public int a = 5;
 public int b = a + 1;
 public int c = a * b;
}
class Cat
{
 public int a = 0;
 public int b = 0;
 public int c = 0;

 public Cat()
 {
  super();

  a = 5;
  b = a + 1; //5+1 = 6
  c = a * b; //5*6 = 30
 }
}
class Cat
{
 public int a = getSum();
 public int b = getSum() - a;
 public int c = getSum() - a - b;

 public getSum()
 {
  return a + b + c;
 }
}
class Cat
{
 public int a = 0;
 public int b = 0;
 public int c = 0;

 public Cat()
 {
  super();

  a = getSum(); //(a+b+c)=0
  b = getSum() - a; //(a+b+c)-a=b=0
  c = getSum() - a - b; //(a+b+c)-a-b=c=0
 }

 public getSum()
 {
  return a + b + c;
 }
}

"Vay canına! Çok basit. Teşekkürler Bilaabo. Sen gerçek bir arkadaşsın!"

"Yaşasın! Bilaabo'nun bir arkadaşı var!"

Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION