CodeGym /Java-cursus /Java Core /Volgorde van variabele initialisatie

Volgorde van variabele initialisatie

Java Core
Niveau 5 , Les 8
Beschikbaar

"Hallo, Amigo! Vandaag zal Bilaabo het hebben over de volgorde waarin variabelen worden geïnitialiseerd ."

Stel je voor dat je naar een code kijkt. Welke waarden krijgen de variabelen?

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

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

"Mag dat echt?"

"Natuurlijk. De volgorde waarin de lidmethoden en velden van een klasse worden gedeclareerd, is niet belangrijk. "

Een klasse wordt van boven naar beneden geladen, dus het is belangrijk dat een veld alleen toegang heeft tot andere velden die al zijn geladen. In het voorbeeld heeft b toegang tot a , maar het weet niets over c .

"En wat zal er gebeuren?"

"Wanneer variabelen worden gemaakt, krijgen ze standaardwaarden."

Code Wat gebeurt er echt
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! Het is zo simpel. Dank je, Bilaabo. Je bent een echte vriend!"

"Hoera! Bilaabo heeft een vriend!"

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