什么是命名慣例?
命名慣例是對(duì)標(biāo)識(shí)符命名的一種規(guī)范,例如,類(lèi),數(shù)據(jù)包,變量,方法等。
為什么要使用命名慣例?
不同的Java程序員有不同的編程喜好和方法。通過(guò)使用標(biāo)準(zhǔn)的Java命名慣例,他們的編寫(xiě)的代碼就更容易讓人看懂。Java代碼的可讀性之所以重要是因?yàn)槿菀鬃x懂的代碼會(huì)為我們節(jié)約理解的時(shí)間,而這些節(jié)約出來(lái)的時(shí)間可以用來(lái)做更多的修復(fù)工作。
為了說(shuō)明這一點(diǎn),很有必要告訴大家大多數(shù)的軟件公司都有一個(gè)用于概述命名慣例的文件,他們希望程序員可以遵守這樣的慣例。一名新的程序員如果熟悉了這些慣例,就能夠很好地理解其他程序員編寫(xiě)的代碼,即便這種代碼很可能是已經(jīng)離職多年的程序員編寫(xiě)的他們也不用擔(dān)心。
為識(shí)別符挑選一個(gè)名稱(chēng)
在為標(biāo)識(shí)符選擇名稱(chēng)的時(shí)候要確保名字是有效性。例如,如果你的程序是處理客戶(hù)帳戶(hù)名稱(chēng)的,那么要選擇那些有意義的名稱(chēng),如,customerName,accountDetails等。不要擔(dān)心名稱(chēng)的長(zhǎng)度。雖然短一點(diǎn)的名稱(chēng)很方便,但是意義卻很含糊,而且較長(zhǎng)的名稱(chēng)所包含的標(biāo)識(shí)相對(duì)于較短的名稱(chēng)更完整。
關(guān)于字母寫(xiě)法
使用正確的字母寫(xiě)法也是命名慣例中很重要的一項(xiàng)規(guī)定:
l Lowercase 意味著所有的字母的書(shū)寫(xiě)都不包含大寫(xiě)字母(例:while, if, mypackage)。
l Uppercase 所有字母都大寫(xiě)。在名稱(chēng)中如果出現(xiàn)兩個(gè)或兩個(gè)以上的單詞,則用下劃線(xiàn)將其分隔。(例:MAX_HOURS, FIRST_DAY_OF_WEEK)
l CamelCase 俗稱(chēng)駝峰格式,即每個(gè)單詞的首字母都用大寫(xiě),其他字母均以小寫(xiě)形式出現(xiàn)。(例:CamelCase,CustomerAccount,PlayingCard)
l Mixed case 與駝峰格式類(lèi)似,不過(guò)名稱(chēng)中第一個(gè)單詞的首字母不用大寫(xiě)。(例:hasChildren,customerFirstName,customerLastName)
標(biāo)準(zhǔn)的Java命名慣例
以下的目錄就為每種標(biāo)識(shí)符類(lèi)型概述了標(biāo)準(zhǔn)的Java命名慣例:Packages: 名稱(chēng)應(yīng)該用小寫(xiě)字母。那些很小的數(shù)據(jù)包可以使用簡(jiǎn)單的名稱(chēng):
package pokeranalyzer
package mycalculator
在有些軟件公司和大型項(xiàng)目中數(shù)據(jù)包可以導(dǎo)入到其他類(lèi)中,則名稱(chēng)會(huì)被分離開(kāi)來(lái),通常這種情況發(fā)生在某種特性分離出來(lái)前夕:
package com.mycompany.utilities
package org.bobscompany.application.userinterface
Classes:名稱(chēng)需用駝峰格式。盡量使用名詞因?yàn)橐粋(gè)類(lèi)通常代表了一個(gè)實(shí)物:
class Customer
class Account
Interfaces:名稱(chēng)需使用駝峰格式。它們傾向于擁有一個(gè)表述操作的名稱(chēng):
interface Comparable
interface Enumerable
注意一些程序員喜歡通過(guò)在名稱(chēng)前用“I”來(lái)區(qū)分界面:
interface IComparable
interface IEnumerable
Methods:名稱(chēng)需使用混合體。使用動(dòng)詞來(lái)表述方法:
void calculateTax()
string getSurname()
Variables:名稱(chēng)需使用混合體書(shū)寫(xiě)。改名稱(chēng)要體現(xiàn)變量所表示的值:
string firstName
int orderNumber
只有在變量是短名稱(chēng)的時(shí)候才使用短名稱(chēng),如在循環(huán)中:
for (int i=0; i<20;i++)
{
//i only lives in here
}
Constants:名稱(chēng)需使用大寫(xiě)字母。
static final int DEFAULT_WIDTH
static final int MAX_HEIGHT
命名慣例是對(duì)標(biāo)識(shí)符命名的一種規(guī)范,例如,類(lèi),數(shù)據(jù)包,變量,方法等。
為什么要使用命名慣例?
不同的Java程序員有不同的編程喜好和方法。通過(guò)使用標(biāo)準(zhǔn)的Java命名慣例,他們的編寫(xiě)的代碼就更容易讓人看懂。Java代碼的可讀性之所以重要是因?yàn)槿菀鬃x懂的代碼會(huì)為我們節(jié)約理解的時(shí)間,而這些節(jié)約出來(lái)的時(shí)間可以用來(lái)做更多的修復(fù)工作。
為了說(shuō)明這一點(diǎn),很有必要告訴大家大多數(shù)的軟件公司都有一個(gè)用于概述命名慣例的文件,他們希望程序員可以遵守這樣的慣例。一名新的程序員如果熟悉了這些慣例,就能夠很好地理解其他程序員編寫(xiě)的代碼,即便這種代碼很可能是已經(jīng)離職多年的程序員編寫(xiě)的他們也不用擔(dān)心。
為識(shí)別符挑選一個(gè)名稱(chēng)
在為標(biāo)識(shí)符選擇名稱(chēng)的時(shí)候要確保名字是有效性。例如,如果你的程序是處理客戶(hù)帳戶(hù)名稱(chēng)的,那么要選擇那些有意義的名稱(chēng),如,customerName,accountDetails等。不要擔(dān)心名稱(chēng)的長(zhǎng)度。雖然短一點(diǎn)的名稱(chēng)很方便,但是意義卻很含糊,而且較長(zhǎng)的名稱(chēng)所包含的標(biāo)識(shí)相對(duì)于較短的名稱(chēng)更完整。
關(guān)于字母寫(xiě)法
使用正確的字母寫(xiě)法也是命名慣例中很重要的一項(xiàng)規(guī)定:
l Lowercase 意味著所有的字母的書(shū)寫(xiě)都不包含大寫(xiě)字母(例:while, if, mypackage)。
l Uppercase 所有字母都大寫(xiě)。在名稱(chēng)中如果出現(xiàn)兩個(gè)或兩個(gè)以上的單詞,則用下劃線(xiàn)將其分隔。(例:MAX_HOURS, FIRST_DAY_OF_WEEK)
l CamelCase 俗稱(chēng)駝峰格式,即每個(gè)單詞的首字母都用大寫(xiě),其他字母均以小寫(xiě)形式出現(xiàn)。(例:CamelCase,CustomerAccount,PlayingCard)
l Mixed case 與駝峰格式類(lèi)似,不過(guò)名稱(chēng)中第一個(gè)單詞的首字母不用大寫(xiě)。(例:hasChildren,customerFirstName,customerLastName)
標(biāo)準(zhǔn)的Java命名慣例
以下的目錄就為每種標(biāo)識(shí)符類(lèi)型概述了標(biāo)準(zhǔn)的Java命名慣例:Packages: 名稱(chēng)應(yīng)該用小寫(xiě)字母。那些很小的數(shù)據(jù)包可以使用簡(jiǎn)單的名稱(chēng):
package pokeranalyzer
package mycalculator
在有些軟件公司和大型項(xiàng)目中數(shù)據(jù)包可以導(dǎo)入到其他類(lèi)中,則名稱(chēng)會(huì)被分離開(kāi)來(lái),通常這種情況發(fā)生在某種特性分離出來(lái)前夕:
package com.mycompany.utilities
package org.bobscompany.application.userinterface
Classes:名稱(chēng)需用駝峰格式。盡量使用名詞因?yàn)橐粋(gè)類(lèi)通常代表了一個(gè)實(shí)物:
class Customer
class Account
Interfaces:名稱(chēng)需使用駝峰格式。它們傾向于擁有一個(gè)表述操作的名稱(chēng):
interface Comparable
interface Enumerable
注意一些程序員喜歡通過(guò)在名稱(chēng)前用“I”來(lái)區(qū)分界面:
interface IComparable
interface IEnumerable
Methods:名稱(chēng)需使用混合體。使用動(dòng)詞來(lái)表述方法:
void calculateTax()
string getSurname()
Variables:名稱(chēng)需使用混合體書(shū)寫(xiě)。改名稱(chēng)要體現(xiàn)變量所表示的值:
string firstName
int orderNumber
只有在變量是短名稱(chēng)的時(shí)候才使用短名稱(chēng),如在循環(huán)中:
for (int i=0; i<20;i++)
{
//i only lives in here
}
Constants:名稱(chēng)需使用大寫(xiě)字母。
static final int DEFAULT_WIDTH
static final int MAX_HEIGHT