Maison >Java >javaDidacticiel >Comment une classe interne anonyme Java accède-t-elle aux variables membres d'une classe externe ?

Comment une classe interne anonyme Java accède-t-elle aux variables membres d'une classe externe ?

WBOY
WBOYoriginal
2024-05-01 09:27:021207parcourir

Les classes internes anonymes accèdent aux variables membres de la classe externe, y compris les variables privées, via leur this mot-clé, et accèdent aux variables membres de la classe externe via cela, tout comme si la classe interne anonyme elle-même déclarait ces variables.

Java 匿名内部类是如何访问外部类的成员变量的?

Mécanisme de Java permettant aux classes internes anonymes d'accéder aux variables membres de classe externes

Les classes internes anonymes sont des classes internes sans noms, généralement utilisées pour créer des classes à usage unique. Une classe interne anonyme peut accéder aux variables membres de sa classe externe, y compris les variables privées.

Mécanisme d'accès :

La classe interne anonyme accède aux variables membres de la classe externe via son mot-clé this. Le mot-clé this pointe vers une instance d'une classe interne anonyme, qui est en fait une instance de sa classe externe. Par conséquent, this peut accéder directement aux variables membres de la classe externe, tout comme si la classe interne anonyme elle-même avait déclaré ces variables. this 关键字来访问外部类的成员变量。this 关键字指向匿名内部类的实例,它实际上是其外部类的实例。因此,this 可以直接访问外部类的成员变量,就像匿名内部类本身声明了这些变量一样。

实战案例:

我们创建一个具有私有成员变量 secret 的外部类 OuterClass类,并创建一个匿名内部类来访问该变量:

public class OuterClass类 {
    private int secret = 42;

    public static void main(String[] args) {
        OuterClass类 outer = new OuterClass类();
        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println("匿名内部类的 secret:" + this.secret);
            }
        };
        r.run();
    }
}

当运行这个程序时,它将输出:"匿名内部类的 secret:42"。这是因为匿名内部类能够通过 this 访问外部类 OuterClass类 的私有变量 secret

Cas pratique :

Nous créons une classe externe Classe OuterClass avec une variable membre privée secret, et créons une classe interne anonyme pour accéder à la variable :
    rrreee
  • Lors de l'exécution de ce programme, il affichera : "Secret de classe interne anonyme : 42". En effet, la classe interne anonyme peut accéder à la variable privée secret de la classe externe OuterClass via this.
  • Il est à noter que :
🎜🎜🎜Les classes internes anonymes ne peuvent accéder qu'aux variables membres de la classe externe, mais pas à ses méthodes. 🎜🎜Si la variable membre de la classe externe est finale, la classe interne anonyme ne peut que lire mais pas modifier la variable. 🎜🎜

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