2012-11-15 22 views
4

如果我有一個對象Mode,根據常見/標準慣例,是否可以接受調用變量mode?當我在我的CS班(高中)提出一個假設的情況時,我的老師打斷我,問我爲什麼要叫一個與班級同名的對象,沒有首都? (這是非常脫離的背景,但我的假設情況與此無關)。是否違反Java約定來命名與類名相同的對象,而不是首都?

此外,我已經明白,如果我的老師說這樣的話,我通常應該這樣做,以符合她想要的約定。我只是想知道,如果一般來說,這是可以接受的。

+2

沒有任何約定阻止了這一點。 –

回答

14

我認爲這完全沒問題。這是正常的做法。類實例大部分時間名稱相同,但以小寫開頭。

一般命名模式是命名具有很少描述性名稱的類和變量以增加可讀性和可維護性。只要命名是自我解釋,它的罰款。

+0

+1,我會再次upvote(如果我可以)第二段 – alfasin

3

我會說遵循流行的慣例。這個想法是,如果你必須命名變量而不是類名,那麼你應該改變類名。

使用良好的描述性名稱可以獲得可讀和可維護的代碼。

+0

我不能不同意你的第二句話(*這個想法是,如果你必須給這個變量命名與類名不同的東西,那麼你應該改變類名。*)。如果是這樣的話,那麼所有人都應該被命名爲「人」。 – Nate

+0

該評論對我來說毫無意義。根據你的邏輯,任何複數都應該由它的單數名稱來調用。 如果你有同一個類的多個不同的實例,顯然你將不得不區分這些。 但它沒有任何意義,命名一個InputStream,SpaceInvader,然後說SpaceInvader inputStream = new SpaceInvader();你不應該看實例名來知道類是什麼。 –

+0

我同意你的看法,因爲你顯然不理解評論。就你的例子而言,如果輸入流只是用來讀入空間入侵者列表,那麼恰當命名的代碼可能是'InputStream spaceInvaders;'。正如你寫的,反之亦然。實例名稱應該更具體,而不是更少。你的最後一句完全違揹你的答案。在你的回答中,你說你應該給這個類命名一個變量,並且在你的反駁評論中,你說你不應該**看實例名來推斷這個類。這是什麼? – Nate

3

據我所見,它可以接受,但請注意,它可能會令人困惑,特別是如果您使用該類的多個對象。

相關問題