Maison >développement back-end >C++ >Comment pouvons-nous imiter la fonctionnalité « ami » de C en Java ?

Comment pouvons-nous imiter la fonctionnalité « ami » de C en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 19:23:11241parcourir

How Can We Mimic C  's `friend` Functionality in Java?

Imiter le concept « ami » de C en Java

En programmation orientée objet, le concept « ami » permet des classes dans différents packages pour accéder aux membres non publics de chacun. Bien que Java ne dispose pas d'un mécanisme « ami » explicite, il existe une solution de contournement intelligente pour obtenir des fonctionnalités similaires.

Considérez deux classes, Roméo et Juliette, appartenant à des packages différents. Pour permettre à Roméo d'accéder aux méthodes non publiques de Juliette, suivez ces étapes :

  1. Créez une classe de jetons dans le package de Roméo : Définissez une classe publique Love dans le package de Roméo, avec un constructeur privé. Cette classe agit comme un jeton de « sécurité de signature ».
  2. Créez une méthode publique dans le package de Juliet : Définissez une méthode publique cuddle dans le package de Juliet qui accepte un argument de type Love.
  3. Restreindre l'accès aux câlins : Dans la méthode câlin, vérifiez si le jeton d'amour transmis n'est pas nul. Sinon, cela garantit que seul Roméo peut appeler cuddle.
  4. Accédez à la méthode Cuddle depuis Romeo : Définissez une méthode statique publique cuddleJuliet dans Roméo qui construit une instance de Love et la transmet à Juliet. câlin.

Cette technique permet à Roméo d'accéder aux méthodes non publiques de Juliet sans en faire une sous-classe de Juliet. En transmettant un jeton unique, cela garantit que seul Roméo peut appeler ces méthodes, reproduisant ainsi le comportement du concept « ami » en C.

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!

Déclaration:
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