Maison > développement back-end > C++ > Comment les objets de la même classe peuvent-ils accéder aux champs privés ?

Comment les objets de la même classe peuvent-ils accéder aux champs privés ?

Patricia Arquette
Libérer: 2024-11-15 06:18:02
original
755 Les gens l'ont consulté

How Can Objects in the Same Class Access Private Fields?

Accès aux champs privés d'objets de la même classe

En Java, le modificateur d'accès privé restreint la visibilité du champ à la classe dans laquelle le champ est déclaré. Cependant, une idée fausse courante est que cette restriction s'applique aux objets de la même classe.

Considérons l'exemple suivant :

class Person {
  private BankAccount account;

  Person(BankAccount account) {
    this.account = account;
  }

  public Person someMethod(Person person) {
    // Why is accessing private field possible?
    BankAccount a = person.account;
  }
}
Copier après la connexion

Pourquoi l'accès à person.account est-il possible ?

Le modificateur privé applique l'encapsulation pour protéger l'état interne d'un objet contre les modifications externes. Cependant, au sein d’une même classe, les objets partagent les mêmes détails d’implémentation. Ils sont conscients des champs et des méthodes privés de la classe.

Comme l'explique Artemix :

"L'idée est que le 'monde extérieur' ne devrait pas apporter de modifications aux processus internes de Person, car la mise en œuvre de Person peut changer. temps (et il faudrait changer tout le monde extérieur pour corriger les différences d'implémentation - ce qui est presque impossible). "

Puisque les objets d'une même classe partagent les mêmes connaissances d'implémentation, leur accorder l'accès à des champs privés garantit qu'ils peuvent toujours accéder et manipuler correctement l'état interne de la classe. Si l'implémentation change, seul le code de la classe doit être mis à jour, éliminant ainsi le besoin de modifier le code en dehors de la classe.

Par conséquent, la conception POO permet aux champs privés d'avoir un accès au niveau de la classe plutôt qu'un accès au niveau de l'objet. faciliter l'encapsulation tout en maintenant la cohérence au sein de l'implémentation de la 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