Bonjour,

Voici le petit bout de code suivant :

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
17
18
19
20
21
22
23
24
 
public class InnerMethod {
 
	private int x = 10;
 
	public void test() {
		class LocalClass {
			private int x = 3;
 
			private void printX() {
				System.out.println(InnerMethod.this.x + this.x);
			}
		}
 
		LocalClass l = new LocalClass();
		l.printX();
	}
 
	public static void main(String[] args) {
		InnerMethod monInnerMethod = new InnerMethod();
		monInnerMethod.test();
	}
 
}
Lorsque je lance ce programme, j'obtiens le résultat attendu : 13.

Cependant je n'arrive pas à comprendre pourquoi j'ai le droit d'appeler l'instruction l.printX() étant donné que cette méthode est déclarée private au sein de la classe LocalClass.

Ne devrais-je pas pouvoir l'appeler uniquement au sein de la classe LocalClass ??