4 資料的實值型別及參考型別
類別有兩大成員,欄位(field)及方法(method)。本章開始介紹欄位及其型別,欄位也稱為資料或變數,在本資料中會依場合使用適當名稱。當類別建立物件後之欄位,或宣告為靜態(Static)之欄位,即分配占有有記憶體,可存放數值、字元、字串、物件參考等,並可於程式執行過程中變更其值,至於欄位可存放何種類型資料,在宣告時必須指定資料型別。
[4-1 Java資料型別(Java Data Types)]
Java資料型別可分為實值型別(Value Type)與參考型別(Reference Type)。
[4-1-1實值型別(Value Type) ]
實值型別變數會儲存資料的值,如數值的1、3.51、10、149….等。指派一個實值型別變數給其他實值型別變數,會複製所包含的值。Java語言的基本資料型別(Primitive Types)如byte、short、int、long、float、double、boolean和char為實值型別。
實值型別宣告格式:
[final] [public|protected|private] [static] 實值資料型別欄位名稱[,欄位名稱,…];
<實值型別例> 圖4-1
int a, b; //宣告整數欄位a及b,沒指定時,整數型別初期值為0
int x; //宣告整數欄位x
int m = 20; //宣告整數欄位並指定初期值20
a = 10; //指定運算
b = a; //指定運算
※宣告時占有記憶體位址,沒指定時,整數型別初期值為0
※指定運算後,a的值成為10,b的值被指定為a的值,也就是10
※格式未說明部分將於後述章節闡明
[4-1-2參考型別(Reference Type)]
參考型別變數是儲存資料的參考(資料所在位址)。參考型別變數的指派會複製物件的參考,但不會複製物件的值。除了Java基本資料型別之外其他型別均為參考型別(Reference Types),如類別(Class)、介面(Interface)、字串(String)、矩陣(Array)等。
參考型別格式變化較多,將個別說明之。
[參考型別例] (圖4-2)
String s1=new String("Primitive Type"); /*宣告字串s1,初值"Primitive
Type" */
String s2=new String(“Reference Type”); /*宣告字串s2,初值" Reference
Type" */
s1=s2; /* 指定運算 */
※s1、s2存放資料所在之位址0xabcd、0xcdef
※資料則在位址0xabcd、0xcdef,分別為Primitive Type、Reference Type
※s1=s2運算後,s1之值為位址0xcdef,而位址0xcdef之內容為Reference Type,故運算後s1、s2指向同一位址。
留言列表