2013-03-10 87 views
0

我只是想知道正常的构造函数和mutator之间的区别是什么?他们似乎都服务于相同的目的 - 为私有变量赋予某些值。在特定情况下,对于某个人有一定的优势吗?由于正常的构造函数和mutator之间的区别? Java

+0

通过“突变”你的意思是“二传手”? – 2013-03-10 02:24:11

+0

(如果是这样,差别似乎很明显:一个在施工时设置数值,其后在任何时间设置一个数值。) – 2013-03-10 02:30:32

+0

是的,我的意思是设置器 – ParaChase 2013-03-10 02:31:06

回答

2

的区别是:

  • 构造函数的私有变量分配作为创建新对象的过程的一部分。
  • 一个构造函数通常会分配多个变量......这是一个精心设计的增变器可能不会做的。
  • (作为@irreputable提醒我),构造函数可以(并且必须)将值分配给“空白”变量......这是变形者不能做的事情。

还值得一提的是:

  • 构造可能调用存取器(如制定者)做的任务,并
  • ,你可以留在构造函数中未初始化的变量和期望/要求new的实例代码为,然后使用增变器来完成初始化。

那么除此之外,它们服务于相同的目的是什么?

不。构造函数的作用是创建一个新的对象。增变器的目的是改变现有的对象。

+0

所以除此之外,它们的作用相同? – ParaChase 2013-03-10 02:31:48

+1

@ChaseYuan不,一点也不。构造器构造。存取器。发生变异。 – 2013-03-10 02:34:19

2

构造函数可以指定一个final变量。制定者不能。

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

new Foo(25); 
vs 
foo.setAge(25); 
相关问题