2013-03-10 2 views
0

Мне просто интересно, какая разница между нормальным конструктором и мутатором? Оба они, похоже, выполняют одну и ту же цель - назначить частным переменным определенные значения. Есть ли определенное преимущество для одного в конкретной ситуации? БлагодаряРазница между нормальным конструктором и мутатором? Java

+0

К «мутатор» вы имеете в виду «сеттер»? –

+0

(Если это так, разница кажется ясной: один устанавливает значения во время построения, один из них устанавливает их в любое время после этого.) –

+0

Да, я имею в виду сеттер – ParaChase

ответ

2

Отличия:

  • конструктор частные переменные присваиваются как часть процесса создания нового объекта.
  • Конструктор, как правило, назначает несколько переменных ... которые, вероятно, не продуманный мутатор.
  • (Поскольку @irreputable напоминает мне), конструктор может (и должен) присваивать значения «пустым» final переменным ... что-то, что не может сделать мутатор.

Стоит также отметить, что:

  • конструктор может мутаторов вызова (например, наладчики), чтобы сделать задание, и
  • вы можете оставить переменные UNINITIALIZED в конструкторе и ожидать/требуется код new с экземпляром , затем используйте мутатор для завершения инициализации.

Так, кроме того, они служат той же цели?

№ Назначение конструктора - создать новый объект. Целью мутатора является изменение существующего объекта.

+0

Так что, кроме этого, они служат для этой же цели? – ParaChase

+1

@ChaseYuan Нет, совсем нет. Конструкторы конструируют. Мутаторы. мутировать. –

2

Конструктор может назначить переменную final. Сеттер не может.

Установщик может иметь более описательное имя, например

new Foo(25); 
vs 
foo.setAge(25); 
Смежные вопросы