Bonjour à tous,
Tout d'abord, veuillez m'excuser, je me doute que ma question a déjà une réponse que je pourrais trouver via Google, mais ne connaissant pas les termes précis qui concernent ma question, c'est assez compliqué de faire une recherche. Et lorsque je consulte des articles parlant de la portée des variables, je ne trouve pas la précision recherchée.
Je vais donc tenter de m'exprimer correctement à ce sujet. Un bout de code devrait m'aider à me faire comprendre:
Voilà, ma question est maintenant toute simple: est-ce que j'ai le droit de faire ça ? Ai-je le droit d'accéder aux variables de ma classe Test depuis la méthode redéfinie de Foo ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class Test { protected boolean myBoolean = true; Test() { Foo mFoo = new Foo() { @Override public void action() { myBoolean = false; } }; } }
Si oui, est-ce que le fait que la variable soit public, protected ou private y change quelque chose ? Est-ce une bonne façon de faire ou est-ce à éviter ?
Mes tests me montrent que ça compile en tout cas, mais je trouve cela assez bizarre puisque la méthode "action" est une méthode de la classe Foo et qu'elle accède directement à la variable de Test...
Merci d'avance pour votre réponse
Partager