Accès de la classe externe Java aux membres privés de la classe interne
Question :
Pourquoi les classes externes les classes ont-elles la possibilité d'accéder aux variables d'instance privées de classe interne, même si elles sont déclarées privées ? Considérez le code suivant :
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 internes en Java sont uniques car elles ont un accès inhérent à la classe externe, y compris ses membres privés. Cela est dû à la conception des classes internes, qui sont essentiellement des membres de leur classe externe.
La raison derrière cet accès est que les classes internes sont étroitement liées aux fonctionnalités de leur classe externe. Ils encapsulent des fonctionnalités spécifiques à la classe externe et n’auraient aucun sens en tant que classe autonome. Par conséquent, ils ont un accès complet à la classe externe, y compris à ses membres privés.
Cette conception permet une meilleure encapsulation et une meilleure modularité au sein des classes. Il permet aux classes internes d'opérer sur les données privées de la classe externe, ce qui ne serait pas possible avec les structures de classes traditionnelles. Cependant, il est important de noter que cet accès n'est accordé qu'à la classe interne et non aux autres classes ou au code externe.
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!