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