Maison >Java >javaDidacticiel >Pourquoi les classes externes peuvent-elles accéder aux membres privés de leurs classes internes en Java ?
Accès aux membres privés des classes internes
En Java, on observe souvent que les classes externes peuvent accéder aux variables d'instance privées de leurs classes internes . Ce comportement peut paraître surprenant puisque les membres privés sont généralement inaccessibles depuis l'extérieur de la classe de définition.
Considérez l'extrait de code suivant :
class OuterClass { class InnerClass { private int x = 10; } public static void main(String[] args) { OuterClass.InnerClass inner = new OuterClass().new InnerClass(); System.out.println("Value of x: " + inner.x); // Why is this allowed? } }
Dans ce code, l'OuterClass peut accéder au membre privé x de l'InnerClass même si elle est déclarée comme privée. En effet, les classes internes ont une relation particulière avec leurs classes externes.
Les classes internes sont étroitement associées à leurs classes externes et sont considérées comme des membres de la classe externe. Cela signifie qu'ils peuvent accéder aux membres privés de leurs classes externes, y compris les champs, les méthodes et les constructeurs.
La capacité des classes externes à accéder aux membres privés des classes internes offre plusieurs avantages :
Cependant, il est important de noter que les classes internes ne peuvent pas accéder directement aux membres privés d'autres classes. , même si ces classes sont frères et sœurs ou dans le même package. L'accès privé est limité à la classe de définition et à ses classes internes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!