回答編集履歴

2

回答追加

2019/02/19 17:17

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -27,3 +27,23 @@
27
27
 
28
28
 
29
29
  余談としましては, 一部のツールではパラメータの無いコンストラクタが必要なものがありますので, 引数として必要なデータがあるのにそのツールに対応する必要がある場合は, 色々策を練ることになります.
30
+
31
+
32
+
33
+ ---
34
+
35
+
36
+
37
+ > 1.クラス変数のコンストラクタで初期値で初期化
38
+
39
+ > 2.クラス変数のコンストラクタで値をセットした初期化
40
+
41
+ > :
42
+
43
+ > List<Book>と数字の型で1つ返却したいのですが
44
+
45
+ > 1と2どちらがいいのでしょうか?
46
+
47
+
48
+
49
+ コンストラクタは生成の **方法** ですので, 返却( getter ) から見てどちらが"良い"ということはありません.

1

用途?を追記

2019/02/19 17:17

投稿

jimbe
jimbe

スコア12659

test CHANGED
@@ -1,9 +1,29 @@
1
1
  「クラス変数のコンストラクタ」という表現に違和感があります. 「コンストラクタ」だけで大丈夫と思います.
2
2
 
3
- Java に不馴れな方とお見受けします. count は bookList の要素数でしょうか. でしたら bookList が自分で持っていますので不要です.
3
+ ~~Java に不馴れな方とお見受けします. count は bookList の要素数でしょうか. でしたら bookList が自分で持っていますので不要です.~~
4
4
 
5
5
 
6
6
 
7
7
  コンストラクタでの初期化は, この場合は結果的には同じと思います.
8
8
 
9
9
  BookColection の機能によりまして, 使い分けるもしくは併用することもあるかと思います.
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ 用途ですが, 引数の有るコンストラクタは, 引数の無いコンストラクタと setter の組み合わせを1行に書ける便利バージョンと思われて良いかと思います.
18
+
19
+ 不変オブジェクトと言われるものでは setter を定義しないので, 必要なデータは全てコンストラクタで指定されることになります.
20
+
21
+
22
+
23
+ コンストラクタの引数となるのはそのクラスの中心となるデータの場合が多く, それが無ければ動作出来ないとなれば, 引数の無いコンストラクタは用意せず必ず指定させるようにします.
24
+
25
+ (その場合コンストラクタ内部では本当に有効な引数なのかをチェックし, 問題があれば例外を出してオブジェクトを利用出来なくします.)
26
+
27
+
28
+
29
+ 余談としましては, 一部のツールではパラメータの無いコンストラクタが必要なものがありますので, 引数として必要なデータがあるのにそのツールに対応する必要がある場合は, 色々策を練ることになります.