通常のコンストラクターとミューテーターの違いは何だろうと思っていました。どちらも同じ目的を果たしているようです-プライベート変数に特定の値を割り当てるためです。特定の状況で、特定の利点はありますか? ありがとう
質問する
4069 次
2 に答える
2
違いは次のとおりです。
- コンストラクタには、新しいオブジェクトを作成するプロセスの一部としてプライベート変数が割り当てられます。
- コンストラクターは通常、複数の変数を割り当てます...適切に設計されたミューテーターはおそらくそうしません。
- (@irreputable が私に思い出させてくれるように)、コンストラクターは「空白の」
final
変数に値を割り当てることができます (そして、しなければなりません)。これは、ミューテーターができないことです。
また、次の点にも注意してください。
- コンストラクターはミューテーター (セッターなど) を呼び出して代入を行うことができます。
- コンストラクターで変数を初期化せずに残し、
new
インスタンスであるコードを期待/要求してから、ミューテーターを使用して初期化を完了することができます。
それ以外は、同じ目的を果たしますか?
いいえ。コンストラクターの目的は、新しいオブジェクトを作成することです。mutator の目的は、既存のオブジェクトを変更することです。
于 2013-03-10T02:26:50.170 に答える
2
コンストラクターはfinal
変数を割り当てることができます。セッターはできません。
セッターには、よりわかりやすい名前を付けることができます。たとえば、
new Foo(25);
vs
foo.setAge(25);
于 2013-03-10T02:35:54.753 に答える