"Hej, Amigo! I dag vil Bilaabo tale om den rækkefølge, som variabler initialiseres i ."

Forestil dig, at du ser på en kode. Hvilke værdier får variablerne?

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

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

"Er det virkelig tilladt?"

"Selvfølgelig. Den rækkefølge, som en klasses medlemsmetoder og felter erklæres i, er ikke vigtig. "

En klasse indlæses fra top til bund, så det er vigtigt, at et felt kun får adgang til andre felter, der allerede er blevet indlæst. I eksemplet kan b få adgang til a , men den ved ikke noget om c .

"Og hvad vil der ske?"

"Når variabler oprettes, får de standardværdier."

Kode Hvad sker der virkelig
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;
 }
}

"Hellige moly! Det er så enkelt. Tak, Bilaabo. Du er en rigtig ven!"

"Hurra! Bilaabo har en ven!"