2013-11-03 149 views
0

有人告訴我多次到永遠做這樣的事情:變量名稱與對象的類型相同嗎?

Dog dog = new Dog(); 
Entry entry = new Entry(); 
//etc... 

通知的Type/Object名稱是如何Dogvariable名字是dog。是否真的被認爲是不好的編程做這樣的事情,還是隻是皺眉了?這是如何導致閱讀你的程序的另一個人有不好的可讀性?

感謝您的澄清。

+2

我看不出有什麼不好呢,這不,它不是基於意見基於觀點的問題 –

+0

... –

+0

通常你可以有一個變量的更好的名字來表示在這裏的特定意圖。像'dogToDraw'或'userEntry'或'receivedAccount'。我不會說你應該「永遠不要」做這樣的事情。 – BartoszKP

回答

5

本身並不是一個壞主意,但它確實取決於對象的含義。我會讓它用一個例子明確:

class Engine { 

} 

class Car { 
    private Engine engine; 
} 

你可以在這裏看到的命名實例變量engine沒有做什麼不好的可讀性。一個Car有一個engine,在這種情況下,類和實例變量的名稱不會產生任何問題。

但考慮另一個例子:

class Point { 

} 

class Circle { 
    private Point point; 
} 

在這裏你可以看到爲什麼它是不是在所有情況下是個好主意。 A Circle有一個Point,稱爲point。好,但這是什麼意思?稱它爲point對讀者來說沒有提供信息。也許center會更合適。

通常,一個類名代表了該類型所有可能對象的集羣。這意味着它的名字通常是通用的。這意味着一般情況下,具有相同名稱的實例變量應該沒有足夠的信息量,當然,在某些情況下,需要了解的所有內容都可以從上下文中推導出來(請參閱Car示例),但您應該真的考慮具體情況。

+0

謝謝,這完全清除了我的東西。 – Tdorno

0

給它賦予一個變量,一個類型的名稱是沒有錯的。

Dog dog = new Dog(); 
Entry entry = new Entry() 

都是完全合理的。這兩個例子都符合Java的命名建議,例如駱駝大小寫變量名稱,類別以可信信件開頭,等等...

-3

尖叫大聲讀出來 狗狗=新的狗。

現在是否有意義不能做...

+3

真的嗎?這是你的「不以意見爲基礎」的論點? – BartoszKP

+1

總廢話。 –

+0

不,這不是一個意見,這是一個事實。程序是爲人類理解而寫的。讓他們更難理解,因爲你可能無能爲力。 –

相關問題