回答編集履歴

3

修正

2021/11/08 14:48

投稿

firstlast
firstlast

スコア138

test CHANGED
@@ -1,4 +1,6 @@
1
1
  <結論>
2
+
3
+ 内部クラスの中から「クラス名.this」とすると、そのクラスのインスタンスを得られる。
2
4
 
3
5
  javaの仕様がそうなっているから、仕方ない。
4
6
 

2

変更

2021/11/08 14:48

投稿

firstlast
firstlast

スコア138

test CHANGED
@@ -1,6 +1,10 @@
1
1
  <結論>
2
2
 
3
3
  javaの仕様がそうなっているから、仕方ない。
4
+
5
+
6
+
7
+ jimbeさんの導きで、解決できました。さらに詳しく知りたい方は、jimbeさんに教えて頂いた下記URLをご参照ください。
4
8
 
5
9
 
6
10
 
@@ -13,3 +17,7 @@
13
17
  3-1.【中級者向け】内部クラスのエンクロージングインスタンスを指すthis
14
18
 
15
19
  内部クラスの中から「クラス名.this」とすると、そのクラスのインスタンスを得られる。
20
+
21
+
22
+
23
+ 以上です。

1

修正

2021/11/08 14:47

投稿

firstlast
firstlast

スコア138

test CHANGED
@@ -4,58 +4,12 @@
4
4
 
5
5
 
6
6
 
7
- 答え↓
7
+ 参考になったサイト
8
-
9
- 内部クラスの中から「クラス名.this」とすると、そのクラスのインスタンスを得られる。
10
-
11
-
12
8
 
13
9
  https://www.bold.ne.jp/engineer-club/java-this
14
-
15
-
16
10
 
17
11
  3.thisに関する少し進んだ知識
18
12
 
19
13
  3-1.【中級者向け】内部クラスのエンクロージングインスタンスを指すthis
20
14
 
21
-
22
-
23
-
24
-
25
- ```java
26
-
27
- class ThisSample9 {
28
-
29
- int field = 123;
30
-
31
-
32
-
33
- class InnerClass {
34
-
35
- int field = 456;
36
-
37
-
38
-
39
- void innerClassMethod() {
40
-
41
- System.out.println(field); // → 456
15
+ 内部クラスの中から「クラス名.this」とすると、そのクラスのインスタンスを得られる。
42
-
43
- System.out.println(this.field); // → 456、ここでのthisはInnerClassのインスタンス
44
-
45
- System.out.println(ThisSample9.this.field); // →123、クラスを明示的に指定してthisを得る
46
-
47
- }
48
-
49
- }
50
-
51
-
52
-
53
- public static void main(String[] args) {
54
-
55
- (new ThisSample9().new InnerClass()).innerClassMethod();
56
-
57
- }
58
-
59
- }
60
-
61
- ```