1 數(shù)據(jù)成員的聲明
數(shù)據(jù)成員是用來描述事物的靜態(tài)特征的。
一般情況下,聲明一個(gè)數(shù)據(jù)成員必須做的事是給出這個(gè)數(shù)據(jù)成員的標(biāo)識(shí)符并指明它所屬的數(shù)據(jù)類型。
聲明數(shù)據(jù)成員時(shí),還可以用修飾符對(duì)數(shù)據(jù)成員的訪問權(quán)限作出限制。
數(shù)據(jù)成員聲明格式:
[修飾符] 數(shù)據(jù)成員類型 數(shù)據(jù)成員名表;
修飾符是可選的,它是指訪問權(quán)限修飾符 public、private、protected 和非訪問權(quán)限修飾符 static、final 等;
數(shù)據(jù)成員類型就是諸如 int、float 等 Java 允許的各種定義數(shù)據(jù)類型的關(guān)鍵字;
數(shù)據(jù)成員名表是指一個(gè)或多個(gè)數(shù)據(jù)成員名,即用戶自定義標(biāo)識(shí)符,當(dāng)同時(shí)聲明多個(gè)數(shù)據(jù)成員名時(shí),彼此間用逗號(hào)分隔。
2 static 修飾的靜態(tài)數(shù)據(jù)成員
用 static 修飾符修飾的數(shù)據(jù)成員是不屬于任何一個(gè)類的具體對(duì)象,而是屬于類的靜態(tài)數(shù)據(jù)成員。
其特點(diǎn)如下:
它被保存在類的內(nèi)存區(qū)的公共存儲(chǔ)單元中,而不是保存在某個(gè)對(duì)象的內(nèi)存區(qū)中。因此,一個(gè)類的任何對(duì)象訪問它時(shí),存取到的都是相同的數(shù)值。
可以通過類名加點(diǎn)操作符訪問它。
static 類數(shù)據(jù)成員仍屬于類的作用域,還可以使用 public static、private static 等進(jìn)行修飾。修飾符不同,可訪問的層次也不同。
3 靜態(tài)數(shù)據(jù)成員的初始化
靜態(tài)數(shù)據(jù)成員的初始化可以由用戶在定義時(shí)進(jìn)行,也可以由靜態(tài)初始化器來完成。
靜態(tài)初始化器是由關(guān)鍵字 static 引導(dǎo)的一對(duì)花括號(hào)括起的語句塊,其作用是在加載類時(shí),初始化類的靜態(tài)數(shù)據(jù)成員。
靜態(tài)初始化器與構(gòu)造方法不同,它有以下特點(diǎn):
靜態(tài)初始化器用于對(duì)類的靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。而構(gòu)造方法用來對(duì)新創(chuàng)建的對(duì)象進(jìn)行初始化。
靜態(tài)初始化器不是方法,沒有方法名、返回值和參數(shù)表。
靜態(tài)初始化器是在它所屬的類加載到內(nèi)存時(shí)由系統(tǒng)調(diào)用執(zhí)行的,而構(gòu)造方法是在系統(tǒng)用 new 運(yùn)算符產(chǎn)生新對(duì)象時(shí)自動(dòng)執(zhí)行的。
靜態(tài)初始化器的格式:
static
{
// 初始化靜態(tài)數(shù)據(jù)成員
}
4 final 修飾的最終數(shù)據(jù)成員
如果一個(gè)類的數(shù)據(jù)成員用 final 修飾符修飾,則這個(gè)數(shù)據(jù)成員就被限定為最終數(shù)據(jù)成員。
最終數(shù)據(jù)成員可以在聲明時(shí)進(jìn)行初始化,也可以通過構(gòu)造方法賦值,但不能在程序的其他地方賦值,它的值在程序的整個(gè)執(zhí)行過程中是不能改變的。
因此,也可以說用 final 修飾符修飾的數(shù)據(jù)成員是標(biāo)識(shí)符常量。
用 final 修飾符說明常量時(shí),需要注意以下幾點(diǎn):
需要說明常量的數(shù)據(jù)類型并指出常量的具體值。
若一個(gè)類有多個(gè)對(duì)象,而某個(gè)數(shù)據(jù)成員是常量,最好將此常量聲明為 static,即用 static final 兩個(gè)修飾符修飾,這樣做可節(jié)省空間。