2013-05-28 113 views
10

我對(命名約定)將變量名稱和方法名稱中的下劃線_用作起始字母感到困惑。例如_sampleVariable_getUserContext()。任何人都可以澄清何時使用它?在變量名稱和方法名稱中使用下劃線

+0

@RishikeshDhokare感謝您的鏈接 – MaheshVarma

+0

通過這個http://stackoverflow.com/questions/150192/using-underscores-in-java-variables-and-method-names – RishikeshDhokare

+1

它只是一種編碼風格身份'成員變量.'但我建議使用'camelCase',而不是下劃線。 [**命名約定**的Oracle PDF](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf) –

回答

6

,請參閱Java Naming Convetions

除了變量,所有的實例,類和類常量,均採用首字母小寫混合的情況。內部詞語以大寫字母開頭。變量名稱不應以下劃線_或美元符號$字符開頭,即使兩者都是允許的。

聲明類常量和ANSI常量的變量名應該全部大寫,並用下劃線(「_」)分隔的單詞。 (ANSI常數應該避免,爲了便於調試。)

2

通常不應在所有大寫常量通常最終(ALLSTARS但ALL_STARS)一起使用,除了隔板。

正是因爲通常不是所期望的,下劃線在生成的代碼中很豐富。它也可能在一些較舊的代碼中找到,這不是繼續使用它的原因。

5

有時候人們用下劃線表示他們的變量或方法是私人的。我不喜歡這種方式。我建議你也使用camelCase。

2

通常在變量中使用_來表示它們作爲類級別的專用變量。

+1

也許在____python____ – ACV

0

引述羅伯特·Ç·馬丁的書乾淨的代碼,

有時是非常有用的警告某些後果其他程序員。

// Don't run unless you 
// have some time to kill. 
public void _testWithReallyBigFile() { 
writeLinesToFile(10000000); 
response.setBody(testFile); 
response.readyToSend(this); 
String responseString = output.toString(); assertSubString("Content-Length: 1000000000", responseString); assertTrue(bytesSent > 1000000000); 
} 

如今,當然,我們會關閉通過使用@Ignore與適當的說明字符串屬性測試用例。 @Ignore(「跑得太久了」)。但是在JUnit 4之前的日子裏,在方法名前面加上下劃線是一個常見的約定。