Maison > développement back-end > C++ > Comment pouvons-nous simuler le concept Friend de C en Java ?

Comment pouvons-nous simuler le concept Friend de C en Java ?

Barbara Streisand
Libérer: 2024-12-08 00:19:11
original
1008 Les gens l'ont consulté

How Can We Simulate C  's Friend Concept in Java?

Simuler le concept C 'Friend' en Java à l'aide d'une astuce

En C, le concept 'friend' permet aux classes de différents packages de accéder aux membres privés les uns des autres. En Java, il n’existe pas d’équivalent direct à ce concept. Cependant, une astuce astucieuse peut être utilisée pour simuler la relation « ami ».

Considérez le scénario suivant : La classe 'Romeo' dans le package 'montague' doit accéder aux méthodes non publiques de la classe 'Juliet' dans le package 'capulet' sans faire de 'Roméo' une sous-classe de 'Juliette'.

Le Solution :

  • 'Juliet' déclare une méthode statique 'cuddle' qui prend un argument de type 'Romeo.Love'.
  • 'Romeo' crée une classe interne ' Love' avec un constructeur privé et une instance finale statique appelée 'love'.
  • 'Romeo' fournit une méthode statique 'cuddleJuliet' qui appelle 'Juliet.cuddle' avec l'instance 'love' comme argument.

Comment ça marche :

  • Le ' La classe Romeo.Love est publique, mais son constructeur est privé. Cela garantit que seul Roméo peut créer des instances de « Love ».
  • La méthode « Juliet.cuddle » est publique, mais elle nécessite une instance « Romeo.Love » comme argument.
  • Par en appelant 'Juliet.cuddle' avec l'instance 'love', 'Romeo' peut accéder aux méthodes non publiques de 'Juliet'.

Essentiellement, 'Romeo.Love' agit comme une "signature de sécurité" qui empêche les autres classes d'accéder aux membres non publics de 'Juliet'. Cette astuce simule le concept « ami » en Java en permettant à « Roméo » d'accéder aux fonctionnalités privées de « Juliet » sans en faire des sous-classes les unes des autres.

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