普通构造函数和mutator之间的区别? Java的

时间:2013-03-10 02:20:42

标签: java

我只是想知道普通构造函数和mutator之间的区别是什么?它们似乎都服务于同一目的 - 为私有变量分配某些值。在特定情况下,某人有某种优势吗?感谢

2 个答案:

答案 0 :(得分:2)

区别在于:

  • 构造函数将私有变量指定为,作为创建新对象的过程的一部分。
  • 构造函数通常会分配多个变量......一个设计良好的mutator可能不会这样做。
  • (正如@irreputable提醒我的),构造函数可以(并且必须)将值赋给“空白”final变量......这是mutator不能做的事情。

值得注意的是:

  • 构造函数可以调用mutator(例如setter)进行分配,
  • 你可以在构造函数中保留未初始化的变量,并期望/要求new实例的代码然后使用mutator来完成初始化。

  

除此之外,他们的目的是什么?

没有。构造函数的目的是创建一个新对象。 mutator的目的是更改现有对象。

答案 1 :(得分:2)

构造函数可以分配final变量。安装者不能。

setter可以有更具描述性的名称,例如

new Foo(25);
vs
foo.setAge(25);