"La création d'un objet entraine toujours, par ordre chronologique, les operations suivantes:
-initialisation par défaut de tous les champs de l'objet(initialisation implicite)
-initialisation explicite lors de la déclaration du champ
-exécution du corps du constructeur
[...]
[l'intialisation implicite correspond à] une initialisation à une valeur par défaut "nulle"..."
source Programmer en Java de Claude Delannoy
que se passe-t-il lors de la compilation de la classe ci-dessous ?
classe B
{....
private int p = n+2;
private int n = 10;
private final int m;
}
lorsqu'on créé un objet, tous les champs sont initialisé par défaut à une valeur nulle, alors, p=0, m=0 et n=0. Mais pourquoi y a-t-il erreur de compilation, si n contient deja une valeur ?
d'autre part, pourquoi est-ce qu'il y a erreur avec la variable m declaree final si dans le constructeur on ne lui attribut pas de valeur ? elle a deja la valeur 0 non ?
finalement, à quoi sert cette fameuse initialisation par défaut ? Un travail superflux ? les donnees ne sont pas utilisables, meme initialisees (par defaut)
Partager