回答編集履歴

2

なぜか編集途中の回答になっていたので編集後のものに修正

2020/05/11 15:29

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- 例えば、インナークラスのフィールドやローカル変数に外部クラスのフィールドと同じ名前の変数がある状態で、外部クラスのフィールドを取得したいとき。
1
+ 例えば、インナークラスのフィールドに外部クラスのフィールドと同じ名前の変数がある状態で、外部クラスのフィールドを取得したいとき。
2
2
 
3
3
 
4
4
 
@@ -12,25 +12,15 @@
12
12
 
13
13
  class InnerSample{
14
14
 
15
-
16
-
17
- public void printAnimal1() {
18
-
19
- System.out.println(animal); //mouse ,this必要なし
15
+ String animal = "gorilla";
20
-
21
- }
22
16
 
23
17
 
24
18
 
25
-
26
-
27
- public void printAnimal2() {
19
+ public void printAnimal() {
28
-
29
- String animal = "gorilla"; //外部クラスのフィールドと同じ名前のローカル変数がインナークラスのメソッド内にある
30
20
 
31
21
  System.out.println(animal); //gorilla
32
22
 
33
- System.out.println(Sample.this.animal); //mouse ,this必要あり
23
+ System.out.println(Sample.this.animal); //mouse
34
24
 
35
25
  }
36
26
 
@@ -42,11 +32,7 @@
42
32
 
43
33
  InnerSample sample = new Sample().new InnerSample();
44
34
 
45
- sample.printAnimal1();
35
+ sample.printAnimal();
46
-
47
- sample.printAnimal2();
48
-
49
-
50
36
 
51
37
  }
52
38
 
@@ -54,6 +40,8 @@
54
40
 
55
41
  }
56
42
 
43
+
44
+
57
45
  ```
58
46
 
59
47
 

1

文の追加

2020/05/11 15:29

投稿

退会済みユーザー
test CHANGED
@@ -55,3 +55,7 @@
55
55
  }
56
56
 
57
57
  ```
58
+
59
+
60
+
61
+ まあ、「同名の変数を区別する」という点では同じですが一例として挙げておきます。