1. Définition de la fermeture.
Il y a beaucoup de personnes différentes qui ont défini les fermetures, et en voici quelques-unes.
# est une fonction qui fait référence aux variables libres. Cette fonction est généralement définie dans une autre fonction externe et fait référence aux variables dans la fonction externe. - << wikipedia >>
# est un objet appelable qui enregistre certaines informations de la portée dans laquelle il a été créé. - << Réflexions de programmation Java >>
# est un bloc de code anonyme qui peut accepter les paramètres et renvoyer une valeur de retour, ou des variables de référence et d'utilisation définies dans le domaine visible qui l'entoure. - groovy ['ru: vi]
# est une expression qui a le contexte de variables libres et la liaison de ces variables.
# La fermeture vous permet d'encapsuler certains comportements, de les passer comme un objet, et il peut toujours accéder au contexte de la première déclaration d'origine.
# fait référence à une expression (généralement une fonction) qui a plusieurs variables et un environnement lié à ces variables, donc ces variables font également partie de l'expression.
# Les fermetures sont des blocs de code qui peuvent contenir des variables libres (non liées); Ces variables ne sont pas définies dans ce bloc de code ou dans tout contexte global, mais dans l'environnement où le bloc de code est défini.
2. Exemple simple de fermeture:
Test de package; Test de classe publique {private int data = 0; classe privée intérieure {void print () {System.out.println (test.this.data);}} inner getInnerInstance () {return new Inner ();} / ** * @param args * / public static Void Main (String [] args) {// ToDo Auto-Generated Method = New = New Test (); t1.data = 1; test t2 = new test (); t2.data = 2; inner inner1 = t1.getInnerInstance (); inner inner2 = t2.getInnerInstance (); inner1.print (); // 1Inner2.print (); // 2}}}Résumer
Ce qui précède concerne l'exemple de code simple de fermetures en Java. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!