2013-03-10 90 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); 
相關問題