Question :
Pourquoi les classes Java externes peuvent-elles accéder aux membres privés de la classe interne ? L'extrait de code suivant illustre ce comportement :
class ABC { class XYZ { private int x = 10; } public static void main(String... args) { ABC.XYZ xx = new ABC().new XYZ(); System.out.println("Hello :: " + xx.x); // Why is this allowed? } }
Réponse :
Les classes imbriquées en Java héritent des privilèges de leur classe englobante. Plus précisément, les classes internes ont accès aux classes externes :
Ce comportement permet aux classes internes d'encapsuler des fonctionnalités qui sont étroitement liées à la classe externe mais les séparent pour plus de lisibilité et à des fins de maintenance.
Les classes internes sont essentiellement des membres de la classe externe, leur permettant d'accéder à ses membres, y compris ceux marqués comme privés. Cet accès est accordé car les classes internes :
Ainsi, l'extrait de code ci-dessus est valide car la classe interne XYZ a accès au membre privé x de la classe externe ABC, car ils sont intimement liés et encapsulés ensemble dans la même déclaration de classe.
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!