CodeGym /Kursus /Teras Java /Urutan permulaan pembolehubah

Urutan permulaan pembolehubah

Teras Java
Tahap, pelajaran
Tersedia

"Helo, Amigo! Hari ini, Bilaabo akan bercakap tentang susunan pembolehubah dimulakan ."

Bayangkan anda sedang melihat beberapa kod. Apakah nilai yang diperolehi oleh pembolehubah?

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;
 }
}

"Adakah itu benar-benar dibenarkan?"

"Sudah tentu. Urutan kaedah dan medan ahli kelas diisytiharkan tidak penting. "

Kelas dimuatkan dari atas ke bawah, jadi adalah penting bahawa medan hanya mengakses medan lain yang telah dimuatkan. Dalam contoh, b boleh mengakses a , tetapi ia tidak tahu apa-apa tentang c .

"Dan apa yang akan berlaku?"

"Apabila pembolehubah dicipta, mereka mendapat nilai lalai."

Kod Apa sebenarnya yang berlaku
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;
 }
}

"Holy moly! Ia sangat mudah. ​​Terima kasih, Bilaabo. Kamu adalah kawan sejati!"

"Hooray! Bilaabo ada kawan!"

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