118 votes

Quelle est la différence entre Class.this et cela en Java

Il y a deux façons de faire référence à l’instance d’une classe dans cette catégorie. Par exemple :

On utilise pour référencer le champ de l’objet, mais les autres usages pour référencer le champ objet. Quelle est la différence entre ces deux références ?

158voto

StriplingWarrior Points 56276

Dans ce cas, ce sont les mêmes. La `` syntaxe est utile lorsque vous avez une classe imbriquée non statique qui doit faire référence à une instance de la classe de son externe.

82voto

Michael Borgwardt Points 181658

Cette syntaxe ne devient pertinente lorsque vous avez imbriqué des classes :

13voto

artbristol Points 17755

Vous devez uniquement utiliser className.this pour les classes internes. Si vous ne les utilisez pas, ne vous inquiétez pas à ce sujet.

4voto

Espionage Points 21

Classe.ceci est utile de faire référence à un notstatic OuterClass.

Pour instancier un non InnerClass, vous devez d'abord créer une instance de la OuterClass. D'où un non InnerClass aura toujours une référence de son OuterClass et tous les les champs et les méthodes de OuterClass est disponible à la InnerClass.

public static void main(String[] args) {

    OuterClass outer_instance = new OuterClass();
    OuterClass.InnerClass inner_instance1 = outer_instance.new InnerClass();
    OuterClass.InnerClass inner_instance2 = outer_instance.new InnerClass();
    ...

}

Dans cet exemple, les deux innerclass sont instanciés à partir de la même Outerclass par conséquent, ils ont tous deux la même référence à la Outerclass.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X