Maison >Java >javaDidacticiel >Comment les classes internes et les classes partielles de Java implémentent-elles les fermetures ?
Utilisez des classes internes et des classes locales pour implémenter des fermetures en Java : Classes internes : Imbriquées dans des classes externes, elles peuvent accéder aux variables privées de la classe externe et implémenter des fermetures. Classes locales : définies dans des méthodes ou des blocs, peuvent accéder aux variables dans le bloc où elles sont créées et implémenter des fermetures. Même si la variable locale ou l'instance de classe externe n'est plus référencée, la classe interne ou locale peut toujours accéder à sa valeur, simulant ainsi le comportement de fermeture.
Implémentation de fermetures en Java à l'aide de classes internes et locales
Introduction
Les fermetures sont une fonctionnalité du langage JavaScript créée en associant une fonction à l'environnement de variable locale dans lequel la fonction a été créée. Java n'avait initialement pas de support intégré pour les fermetures, mais le comportement de fermeture peut être simulé à l'aide de classes internes et locales.
Classe intérieure
Une classe interne est une classe à l'intérieur d'une autre classe appelée classe externe. Les variables privées de la classe externe sont accessibles, implémentant ainsi des fermetures.
public class OuterClass { private int value = 10; public InnerClass getInnerClass() { return new InnerClass(); } public class InnerClass { public int getValue() { return value; } } }
Cas pratique
OuterClass outerClass = new OuterClass(); OuterClass.InnerClass innerClass = outerClass.getInnerClass(); // 即使外部类实例outerClass不再引用,innerClass仍可访问其值。 System.out.println(innerClass.getValue()); // 输出:10
Classe partielle
Une classe locale est une classe définie dans une méthode ou un bloc. Ils ont accès aux variables au sein du bloc dans lequel ils sont créés, implémentant ainsi des fermetures.
public class ClosureExample { public static void main(String[] args) { int value = 10; // 局部类可以访问value变量 class LocalClass { public int getValue() { return value; } } LocalClass localClass = new LocalClass(); // 即使局部变量value范围之外,localClass仍可访问其值。 System.out.println(localClass.getValue()); // 输出:10 } }
Conclusion
Le comportement des fermetures peut être simulé en Java à l'aide de classes internes et partielles. En rendant les variables locales accessibles, nous pouvons créer des objets pouvant être référencés en dehors de la portée de l'appel de fonction.
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!