9.5.5 包裝類
Java語言是一個面向對象的語言,但是Java中的基本數據類型卻是不面向對象的,這在實際使用時存在很多的不便,為了解決這個不足,在設計類時為每個基本數據類型設計了一個對應的類進行代表,這樣八個和基本數據類型對應的類統稱為包裝類(Wrapper Class),有些地方也翻譯為外覆類或數據類型類。
包裝類均位於java.lang包,包裝類和基本數據類型的對應關系如下表所示:
包裝類對應表
基本數據類型 包裝類 byte Byte boolean Boolean short Short char Character int Integer long Long float Float double Double
在這八個類名中,除了Integer和Character類以後,其它六個類的類名和基本數據類型一直,只是類名的第一個字母大寫即可。
對於包裝類說,這些類的用途主要包含兩種:
a、作為和基本數據類型對應的類類型存在,方便涉及到對象的操作。
b、包含每種基本數據類型的相關屬性如最大值、最小值等,以及相關的操作方法。
由於八個包裝類的使用比較類似,下面以最常用的Integer類為例子介紹包裝類的實際使用。
1、實現int和Integer類之間的轉換
在實際轉換時,使用Integer類的構造方法和Integer類內部的intValue方法實現這些類型之間的相互轉換,實現的代碼如下:
int n = 10;
Integer in = new Integer(100);
//將int類型轉換為Integer類型
Integer in1 = new Integer(n);
//將Integer類型的對象轉換為int類型
int m = in.intValue();
2、Integer類內部的常用方法
在Integer類內部包含了一些和int操作有關的方法,下面介紹一些比較常用的方法:
a、parseInt方法
public static int parseInt(String s)
該方法的作用是將數字字符串轉換為int數值。在以後的界面編程中,將字符串轉換為對應的int數字是一種比較常見的操作。使用示例如下:
String s = “123”;
int n = Integer.parseInt(s);
則int變量n的值是123,該方法實際上實現了字符串和int之間的轉換,如果字符串都包含的不是都是數字字符,則程序執行將出現異常。(說明:異常的概念將在下一章進行講述)
另外一個parseInt方法:
public static int parseInt(String s, int radix)
則實現將字符串按照參數radix指定的進制轉換為int,使用示例如下:
//將字符串”120”按照十進制轉換為int,則結果為120
int n = Integer.parseInt(“120”,10);
//將字符串”12”按照十六進制轉換為int,則結果為18
int n = Integer.parseInt(“12”,16);
//將字符串”ff”按照十六進制轉換為int,則結果為255
int n = Integer.parseInt(“ff”,16);
這樣可以實現更靈活的轉換。
b、toString方法
public static String toString(int i)
該方法的作用是將int類型轉換為對應的String類型。
使用示例代碼如下:
int m = 1000;
String s = Integer.toString(m);
則字符串s的值是”1000”。
另外一個toString方法則實現將int值轉換為特定進制的字符串:
public static int parseInt(String s, int radix)
使用示例代碼如下:
int m = 20;
String s = Integer.toString(m);
則字符串s的值是”14”。
其實,JDK自從1.5(5.0)版本以後,就引入了自動拆裝箱的語法,也就是在進行基本數據類型和對應的包裝類轉換時,系統將自動進行,這將大大方便程序員的代碼書寫。使用示例代碼如下:
//int類型會自動轉換為Integer類型
int m = 12;
Integer in = m;
//Integer類型會自動轉換為int類型
int n = in;
所以在實際使用時的類型轉換將變得很簡單,系統將自動實現對應的轉換。