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