[Java 1.5] Encapsulation de Variables
Bonjour je ne comprends pas du tout pourquoi le retour de la fonction de maiin donne 0 et 10.
J'aurai juré de mille feux qu'on obtienne une erreur de compilation. Etant donné qu'on a une variable protégée par private, un objet instancié, or cet objet devrait aller dans le tas, et par conséquent ne devrait pas pouvoir accéder à la variable déclarée avec le modificateur private.
J'ai refait le même chose -une fonction main, et instancié un objet AQuestion- mais en créant un objet à partir d'un autre package, effectivement on ne peut pas accéder à la vatriable. Mias ici étant donné qu'on déclare un objet dans la même classe, celui ci peut accéder à une vairable déclarée avec le modificateur private. C'est fou! Ca voudrait donc dire que je n'ai rien compris à l'encapsulation ? Donc au modèle objet ? C'est possible, si quelqu'un pouvait m'éclairer.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public class AQuestion
{
private int i = giveMeJ();
private int j = 10;
private int giveMeJ()
{
return j;
}
public static void main(String args[])
{
System.out.println((new AQuestion()).i);
System.out.println((new AQuestion()).j);
}
} |
Passez de joyeuses fêtes.
Bien à vous.