« Bonjour, Amigo ! Aujourd'hui, Bilaabo te parlera de l'ordre dans lequel les variables sont initialisées. »
Imagine que tu observes du code. Quelles valeurs les variables reçoivent-elles ?
class Cat
{
public int a = 5;
public int b = a + 1;
public int c = a * b;
}
class Cat
{
public int a = getSum();
public int b = getSum() - a;
public int c = getSum() - a - b;
public int getSum()
{
return a + b + c;
}
}
« C'est vraiment autorisé ? »
« Bien sûr. L'ordre d'initialisation des méthodes et champs membres d'une classe n'a pas d'importance. »
Une classe est chargée de haut en bas, il est donc important qu'un champ accède uniquement aux autres champs qui ont déjà été chargés. Dans l'exemple, b peut accéder à a, mais cette variable ne sait rien au sujet de c.
« Que se passe-t-il, alors ? »
« Lorsque les variables sont créées, elles reçoivent des valeurs par défaut. »
Code | Ce qui se passe vraiment |
---|---|
|
|
|
|
« Nom d'une pipe en bois ! C'est si simple. Merci, Bilaabo. Tu es un vrai ami ! »
« Hourra ! Bilaabo a un ami ! »