teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

反省

2017/08/02 08:08

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -60,4 +60,6 @@
60
60
 
61
61
  SubインスタンスからMainのインスタンスを参照しています。
62
62
  このコードだとよくメリットが分からないかもしれませんが、GUIを組むときなどに多用します。
63
- 追々用途はわかってくるかと。
63
+ 追々用途はわかってくるかと。
64
+
65
+ ...このコードはあんまりいい例じゃないですね。思いつかないなぁ。

2

追記

2017/08/02 08:08

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -28,4 +28,36 @@
28
28
  }
29
29
  ```
30
30
 
31
- こんな感じですかね。
31
+ こんな感じですかね。
32
+
33
+ 追記
34
+ ---
35
+ 『自分自身を渡す』というのは確かに想像しづらいですね。
36
+ 例えば、こういうことが出来ます。
37
+ ```Java
38
+ public class Main{
39
+ private String hello = "こんにちは";
40
+ private Sub sub;
41
+
42
+ private Main() {
43
+ sub = new Sub(this);
44
+ }
45
+ public void sayHello() {
46
+ System.out.println(hello);
47
+ }
48
+
49
+ public static void main(String args[]){
50
+ new Main();
51
+ }
52
+ }
53
+
54
+ class Sub {
55
+ public Sub(Main mainInstance) {
56
+ mainInstance.sayHello();
57
+ }
58
+ }
59
+ ```
60
+
61
+ SubインスタンスからMainのインスタンスを参照しています。
62
+ このコードだとよくメリットが分からないかもしれませんが、GUIを組むときなどに多用します。
63
+ 追々用途はわかってくるかと。

1

見やすく

2017/08/02 08:04

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,14 +1,3 @@
1
- 例えば、次の場合はthisが必須です。
2
- ```Java
3
- class MyClass {
4
- private int value;
5
-
6
- MyClass(int value) {
7
- this.value = value;
8
- }
9
- }
10
- ```
11
-
12
1
  基本的には、thisは省略されているものだと思っておけばいいです。
13
2
  ```Java
14
3
  class MyClass2 {
@@ -28,4 +17,15 @@
28
17
  - 仮引数名と、自身のフィールドが同名で、区別する必要がある場合
29
18
  - 自分自身を渡す場合
30
19
 
20
+ 例えば、次の場合はthisが必須です。
21
+ ```Java
22
+ class MyClass {
23
+ private int value;
24
+
25
+ MyClass(int value) {
26
+ this.value = value;
27
+ }
28
+ }
29
+ ```
30
+
31
31
  こんな感じですかね。