Maison > Java > javaDidacticiel > Pourquoi les classes Java externes peuvent-elles accéder aux membres privés de la classe interne ?

Pourquoi les classes Java externes peuvent-elles accéder aux membres privés de la classe interne ?

Patricia Arquette
Libérer: 2024-12-07 19:42:18
original
1051 Les gens l'ont consulté

Why Can Outer Java Classes Access Inner Class Private Members?

Privilèges d'accès aux classes imbriquées de Java

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?
    }
}
Copier après la connexion

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 :

  • Membres publics et protégés
  • Membres privés du package
  • Membres privés, y compris ceux des classes imbriquées

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 :

  • Résident dans le même fichier et package que la classe externe
  • Sont étroitement couplées aux fonctionnalités de la classe externe
  • Fournissez une manière structurée d'organiser et de séparer le code

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal