回答編集履歴
1
若干修正
answer
CHANGED
@@ -8,13 +8,13 @@
|
|
8
8
|
|
9
9
|
---
|
10
10
|
疑問②について
|
11
|
-
違います。クラス内部の変更というのは「仕様変更」のことを言っていると思いますが、疑問①の回答で書いた通り、プロパティは「データ管理」の責任の所在を明確にするためのものです。
|
11
|
+
違います。クラス内部の変更というのは「仕様変更」のことを言っていると思いますが、疑問①の回答で書いた通り、プロパティは「データ管理」の責任の所在を明確にするためのものです。どのような状況でも基本的にプロパティを使うべきです。
|
12
12
|
|
13
13
|
---
|
14
14
|
疑問③について
|
15
|
-
確かに自動実装は素通しですが、ほとんどの場合setterを外部公開することはなく、getterのみを公開することが多いです。setterを自動実装で公開する場合は、enum型など「データ型自体に制約がついているもの」を指定することが多いイメージです。
|
15
|
+
確かに自動実装は素通しですが、ほとんどの場合setterを外部に公開することはなく、getterのみを公開することが多いです。setterを自動実装で公開する場合は、enum型など「データ型自体に制約がついているもの」を指定することが多いイメージです。
|
16
|
-
認識としては、「オブジェクトが何らかのデータを公開する」場合は全てプロパティとして公開し、フィールド変数を直接公開することは
|
16
|
+
認識としては、「オブジェクトが何らかのデータを公開する」場合は全てプロパティとして公開し、フィールド変数を直接公開することはしない。そして、内部の変数をそのまま公開すればよい場合は自動実装でも問題がないだけである、と考えてしまって問題ないです。
|
17
17
|
|
18
18
|
---
|
19
19
|
疑問④について
|
20
|
-
自動実装の初期化構文は「getter-onlyの自動実装プロパティ」と同時に導入されたもので、威力を発揮する場面は限られます。結局のところ、インスタンス生成時にコンストラクタの先頭で代入される動作に近いもので、単に「特定の状況で楽に書ける糖衣構文」でしかないのです。
|
20
|
+
自動実装の初期化構文は「getter-onlyの自動実装プロパティ」と同時に導入されたもので、威力を発揮する場面は限られます。結局のところ、インスタンス生成時にコンストラクタの先頭で代入される動作に近いもので、単に「特定の状況で楽に書ける糖衣構文」でしかないのです。
|