0

通常のコンストラクターとミューテーターの違いは何だろうと思っていました。どちらも同じ目的を果たしているようです-プライベート変数に特定の値を割り当てるためです。特定の状況で、特定の利点はありますか? ありがとう

4

2 に答える 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 に答える