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