JavaRush /Kurslar /All lectures for UZ purposes /O'zgaruvchilarni Initsializatsiya Qilish Ketma-ketligi

O'zgaruvchilarni Initsializatsiya Qilish Ketma-ketligi

All lectures for UZ purposes
Daraja, Dars
Mavjud

— Salom, Amigo! Bugun Bilaabo o'zgaruvchilarni initsializatsiya qilish tartibi haqida gapirib beradi.

Ko'z oldingga kodni keltir. O'zgaruvchilar qanday qiymat oladi?

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

— Axir bu mumkinmi?

— Albatta mumkin. Metodlar va klass maydonlari orasida e'lon qilish tartibi muhim emas.

Klass yuqoridan pastga yuklanadi, shuning uchun muhimki, klass maydoni faqat allaqachon yuklangan boshqa maydonlarga murojaat qilishi kerak. Misolda b maydoni a maydoniga murojaat qilishi mumkin, lekin c maydoni haqida hech narsa bilmaydi.

— Va nima bo'ladi?

— O'zgaruvchilar yaratilganda, ular default qiymatlarni (standart qiymatlarni) oladi.

Kod Haqiqatan nimalar sodir bo'ladi
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 int 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 int getSum()
 {
  return a + b + c;
 }
}

— Voh! Bu qanchalik oddiy ekan. Rahmat, Bilaabo, sen haqiqiy do'stsan!

— Ura! Bilaaboninig do'sti paydo bo'ldi!

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