2012-11-02 31 views
1

在我的編程課程,我的老師在他的代碼聲明實例變量時,總是使用下面的命名約定:什麼是實例變量的正確命名約定?

public class Snowman { 
    private Ellipse _top; 
    private Ellipse _middle; 
    private Ellipse _bottom; 

public Snowman() { 
     _top = new Ellipse(); 
     _top.setColor(Color.WHITE); 
     _top.setFrameColor(Color.BLACK); 
     _top.setFrameThickness(1); 
     _top.setSize(80, 80); 
     _middle = new Ellipse(); 
     _middle.setColor(Color.WHITE); 
     _middle.setFrameColor(Color.BLACK); 
     _middle.setFrameThickness(1); 
     _middle.setSize(120, 120); 
     _bottom = new Ellipse(); 
     _bottom.setColor(Color.WHITE); 
     _bottom.setFrameColor(Color.BLACK); 
     _bottom.setFrameThickness(1); 
     _bottom.setSize(160, 160); 
    } 
} 

在課本,然而,實例變量不以下劃線開頭,而是遵循與原始類型變量(int revolutionsPerMinute)相同的命名約定。當我進行在線搜索時,發現了幾個來源,包括在線Javadoc,它引用了與我的教科書相同的約定。由於我無法複製我的老師所遵循的命名約定,我對他的約定是否合法持懷疑態度。如果不被廣泛接受,大會是否會教我的老師甚至存在?

+1

這很大程度上取決於你或你的老闆:)有幾個約定,你可能會自己製作方言,這將是更多的名單。 – Ben

+0

問[專家](http://docs.oracle.com/javase/specs/)。這是你所追求的JLS。 –

+0

是的。正如我在文章中提到的,我查看了文檔。我很好奇這個命名慣例是否存在。 – Eunkai

回答

5

通常,Java中的標準約定是駱駝案例其中,您以小寫字母開頭並使用大寫字母表示每隔一個單詞的第一個字母。例如:

int myVariable; 
int mySecondVariable; 

但請注意,這些約定不是規則。所以任何人都可以自由地使用任何約定,但是建議使用標準約定來爲任何人編碼可讀

+1

注意:關於[實例]變量名稱的約定往往比方法名稱和類名稱稍微「鬆一些」。 (也就是說,使用'int m_sillyConvention'的代碼可以遠離void void do_stuff()或class hurtzMahEyez)。 – 2012-11-02 05:03:51

4

類名稱和類型

第一上限:SomeClassNameURL(縮寫)

靜態,實例變量和方法

駱駝情況:thisIsCamelCase

常量

全部大寫:A_CONSTANT

全部小寫:javax.swing.jfilechooser

+3

對於首字母縮略詞,如果<= 3個字符且其他初始化上限(例如'HttpURLConnection'),則「官方」Java樣式全部大寫,但事件不一致(請參閱'SslRMIServerSocketFactory')。我個人比較喜歡的一個很常見的替代方法是首先限制所有首字母縮略詞。 – Dmitri

3

我想說的約定是,您在編寫代碼的東西跟隨易於編寫代碼。我不認爲有什麼比如存在或不存在的約定。但是,您製作的課程也可能被其他程序員使用。所以,如果他們不知道你遵循的慣例,他們可能會遇到問題。因此,建議您遵循命名約定後跟大多數Java程序員:

int myFirstNumber; 
ClassName objectName; 

因此,它是由你來選擇該公約,但我建議已經在javadoc和教科書提及的標準以下。

0

與領先的下劃線沒什麼大不了的。

只要它不以大寫字母開頭 - 這將完全混淆Java程序員。