Cet article décrit le mécanisme de création et de crochet des objets de classe interne Java. Partagez-le pour votre référence, comme suit:
Bien que les classes internes en Java soient complètement indépendantes de leurs classes périphériques dans les informations d'état (elles peuvent directement remplir leurs fonctions via des instances de classe interne), les objets de classe périphérique sont la base de l'existence d'objets de classe interne.
Lors de la génération d'objets de classe interne, il est nécessaire de s'assurer qu'ils peuvent avoir des objets de classe périphérique à accrocher, de sorte que Java fournit une syntaxe stricte pour générer des objets de classe interne.
Il existe deux méthodes qui sont généralement utilisées pour générer des objets de classe interne.
Méthode 1: Méthode standard à l'aide d'une instance de classe périphérique. Nom de classe interne ().
Exemple 1:
classe publique extérieure {int no; La classe intérieure implémente Interfacea {}} interface interfacea {} main () {exter instancea = new OUTER (); interfacea interfacea = instancea.new inner (); // prêter attention à la méthode de génération d'instances de classe interne, nouvelle instance de classe périphérique. Nom de classe interne (). Le but de cela est de s'assurer que l'instance de classe interne doit avoir une instance de classe périphérique Hook.Interfacea interfaceB = INSCENEA.NEW OUTER (); // Une autre instance de la classe interne est générée, et elle est également attachée à l'instance Instancea. }Méthode 2 : Utilisez la méthode d'usine pour renvoyer directement un objet qui implémente une certaine interface (l'objet est généralement une classe interne).
Exemple 1:
classe publique extérieure {int no; Class Inner implémente interfacea {} public interfacea CreateInnerInstance {return interfacea {read (); }}} Interface interfacea {public void read ();} main () {exter instancea = new exter (); interfacea interfacea = instancea.createinnerInstance (); // notez la méthode générée par l'instance de classe interne, appelez directement une méthode d'usine et renvoie un objet qui met en œuvre l'interface interfacea. Interfacea interfaceB = instancea.createInnerInstance (); // Une nouvelle instance de la classe interne est générée, et elle est également attachée à l'instance Instancea. }Par rapport à la façon d'utiliser le nom d'instance .New Class Name (), la méthode d'usine semble plus élégante et claire.
! Faites attention au scénario d'utilisation des classes internes. Généralement, il s'agit de renvoyer un objet de classe interne qui implémente une certaine fonction d'interface à l'extérieur, puis d'effectuer des opérations correspondantes. (Étant donné que les membres de la classe périphérique sont pleinement visibles par la classe interne, leur commodité et leurs avantages sont très évidents)
Étant donné que le compilateur capture automatiquement les informations d'instance de classe périphérique lorsque l'objet de classe interne est généré, Java fournit également une méthode. Cette méthode pour rappeler les instances de classe périphérique (cette méthode est parfois très importante).
Exemple:
Classe publique Exter {class Inner {public exter callback () {return exter.si} // callback () renvoie une référence à l'objet de classe périphérique du crochet d'objet de classe intérieure, en utilisant la syntaxe de classe périphérique. }}Pour plus de contenu lié à Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Introduction et tutoriel avancé sur la programmation Java Oriented Oriented", "Tutorial sur la structure de données Java et l'algorithme", "Résumé des compétences de l'opération Java Dom Dom", "Résumé des compétences de l'opération Java et de l'opération de répertoire" et "Résumé de Java Cache Skills"
J'espère que cet article sera utile à la programmation Java de tous.