在定義類時,經常需要抽象出它的屬性,并定義在類的主體中。下面就來介紹與屬性相關的內容。
常量屬性
在類中定義的屬性有常量屬性和成員屬性之分。常量屬性用final關鍵字修飾,常量只能賦值一次,在程序中不能修改它的值。一般來說,在類中定義的常量屬性用大寫字母命名。
例如:
成員屬性
成員屬性是抽象出來的類屬性,成員屬性不能直接被外部訪問或修改,需要通過get和set方法來訪問或修改屬性值,成員屬性一般用private關鍵字修改,表明為私有成員,禁止外部直接訪問。
成員屬性的作用范圍為整個類文件,作用范圍就是成員屬性的有效工作范圍,在整個類文件中,成員屬性都可以被訪問和使用。
例如:
Fruits類有三個成員屬性,分別是water(汁液含量)、sugar(糖分含量)、fragrance(芳香度),這三個屬性被修飾為private,禁止外部訪問和修改。外部如果要訪問和修改類屬性,需要調用類提供的get和set方法,如getWater()方法可以獲取water屬性的值,setWater(String water)方法可以設置water屬性的值,另外兩個屬性,依次類推。
對于成員屬性,Java提供了三種初始化方式。
(1)使用默認值初始化
Java為聲明的成員屬性或變量提供了默認初始化機制,當聲明成員屬性或變量時即使沒有顯式賦值,Java也會為以下類型的成員屬性或變量提供默認值:
(2)使用顯式值初始化
聲明成員屬性的同時,進行賦值。
例如:
(3)使用類構造方法初始化
通過類構造方法來初始化屬性(類構造方法后面介紹),可參考本節的Fruits類構造方法。
成員變量
變量前面已經介紹過了,變量的主要作用是存儲程序運行過程中的臨時數據,程序退出后,變量存儲的內容不再存在。在類體中聲明的變量稱為成員變量。
成員變量的作用范圍為整個類文件,在整個類文件中,成員變量都可以被訪問和使用。
例如:
與成員屬性不同的是,成員變量無需提供get和set方法。成員變量一般用于類內部存儲臨時數據使用。
局部變量
在類方法體中聲明的變量為局部變量。
局部變量的作用范圍為方法體,在方法體中,局部變量可以被訪問和使用,局部變量在方法體外無效,不能被訪問和使用。
例如:
其中,在showArea()方法中聲明的r為局部變量,局部變量必須要聲明并賦值后才能使用。
■ 知識點撥
Java類的成員屬性和成員變量有所區別,成員屬性是類所表述事物的共同特征,成員屬性不能被外部直接訪問和修改,必須通過類提供的get和set方法訪問和修改成員屬性。成員變量一般用于類內部存儲臨時數據使用,不需要提供get和set方法。
■ 思考與練習
請說明類成員屬性、成員變量、局部變量的區別。