回答編集履歴
2
修正
test
CHANGED
@@ -16,6 +16,8 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
+
つまりコンストラクタが呼ばれた時点で初期化子による初期化は終わっているので、コンストラクタではあるフィールドの値を見て別のフィールドを初期化することができます。
|
20
|
+
|
19
21
|
またコンストラクタでは自由にメソッドを呼ぶことができますが、初期化子では限定されています。
|
20
22
|
|
21
23
|
より詳細な解説が欲しい場合は次を読んでください。
|
1
修正
test
CHANGED
@@ -6,13 +6,13 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
>
|
9
|
+
> 1. インスタンス変数は、デフォルトの値で初期化(数値型は0、boolean型はfalse、char型は'\u0000'、オブジェクト参照はnull)
|
10
10
|
|
11
|
-
|
11
|
+
> 2. スーパークラスのコンストラクタを呼び出す
|
12
12
|
|
13
|
-
|
13
|
+
> 3. インスタンス変数に対して明示的に指定された初期化子と、初期化ブロックで、初期化
|
14
14
|
|
15
|
-
|
15
|
+
> 4. コンストラクタで指定された処理で初期化
|
16
16
|
|
17
17
|
|
18
18
|
|