2012-04-27 93 views
10

我在2年前開始在java中編程。當時我們項目中的老年人曾建議我將「obj」附加到正在創建的對象的名稱上。java中對象的命名約定

例:

Car objCar = new Car("Ferrari"); 

這裏objCar就是在說什麼。但是堆棧溢出中的很多人反對,現在我發現這不應該是命名對象的方式。使用集合時,命名約定很明確,但在創建一般類的對象時會感到困惑。

任何人都可以對此有所瞭解嗎?

+2

除了基本類型,Java中的所有東西都是對象。你會在每個變量名上加上'obj'嗎? – Gabe 2012-04-27 05:45:12

+0

這個'obj ...'東西,如果從舊時代。 – 2012-04-27 05:45:20

+1

如果對你來說,它更容易識別你的屬性...爲什麼不與「obj」 – Neifen 2012-04-27 05:46:05

回答

25

只要叫它car。 Sun/Oracle不使用Hungarian notation

以描述它們的方式命名變量使用。但是你不需要在變量名稱中指明類型。您已經在變量聲明中指定了類型。如果您將鼠標懸停在變量上,IDE會向您顯示變量的類型,以便隨時提供信息。

對於變量名稱和方法名稱,應該使用lowercaseStartingCamelCase,對於類名稱應該使用UppercaseStartingCamelCase

如果您想了解Sun/Oracle如何操作,您可以閱讀它們的Code Conventions for the Java Programming Language

+0

命名對象時遵循的標準是什麼?剛開始時只有小寫字母的名字? – 2012-04-27 05:46:05

+0

@Ajj考慮命名它有意義的東西,比如它的用途。這是「標準」。如果您的意思是語法標準,則變量名稱以小寫字母開頭並使用camelCase。 – 2012-04-27 05:47:02

+0

用accessor和mutator方法命名很好。我只是與'汽車','學生','機器'等普通課程混淆。 – 2012-04-27 05:49:45

2

爲對象命名,它使得閱讀和重構變得更容易。

1

java中對象的命名約定只是名稱。 例如

Car car = new Car("Ferrari"); 

匈牙利命名法的殘餘已被摒棄了加入支持的IDE已經提供了導航的主要是因爲。

+0

好的。所以這是如何完成的? – 2012-04-27 05:48:24

-1

因爲你是高級,畢竟我可以建議你一些命名爲 約定有關你的疑惑。因爲我們知道所有班級名稱都是以第一個大寫字母開頭的 ,所以當我們需要創建這個班級時,假設班級「MyTest」爲 它應該是「mytest」。 對象名稱應該採用這種格式。根據雅加達 項目宣言,我發現這種類型的對流和 以下。除了雅加達之外,Sun API包括用於開發 IDE的IDE也在使用它。 希望,它會幫助你。是的,我是新的。感謝您的有用信息。

+0

Manoj,看起來你是新來的SO。親愛的等,沒有支持條款在SO和答案不需要代碼格式。 – kosa 2012-04-27 06:01:26

+0

感謝您提供有用的信息。 – 2012-04-27 07:26:17

0

小寫字母的類名是Sun/Oracle標準。

當你正在爲一家公司

取決於項目的命名規則也可能會有所不同。

Car car=new Car(); //good to follow 

如果Singleton pattern,你可以給一個名稱,如下面

private static final Car singletonCar=new Car(); 
+1

不應在字段名稱中標識單身人士。他們是單身人士的事實應該只在字段初始化時纔可見。如果需要其他東西,那麼這是一個關於做錯事情的信號。在你的例子中,錯誤的是你允許一個以上的Car-singleton實例。 – Torben 2012-04-27 06:02:08

+0

edited.there有很多方法來創建一個單例它是其中之一。這種命名約定是爲了可讀性而維護的。 – 2012-04-27 06:33:03

+1

單例的想法是,你只能初始化對象的一個​​實例。最終字段並不妨礙您創建兩個Car對象。你必須建立限制進入Car對象本身。初始化單身人士記錄很好。請Google它。一旦你獲得了一個單例的引用,就不需要在字段名稱中將它標記爲單例。單例應該以如此強大的方式實現,以便用戶在初始化後不必知道它。它應該像許多線程共享的任何其他對象一樣。 – Torben 2012-04-27 06:54:03

4

你的例子是有點太微不足道了。事實上,你永遠不會將對象類型「Car」的字段命名爲「car」。同樣,您從不將「整數」類型命名爲「整數」。

而是使用名稱告訴讀者該字段用於什麼。一些示例:

private Transport preferredTransportMethod; 

private int invoiceCounter; 

前綴字段類型一般不使用Java。但是,類成員有時以小寫「m」作爲前綴,以防止setter方法中的意外自我分配。

private long mTripDurationMillis;