java中的包裝類提供了將原始數據類型轉換為對象,以及將對象轉換為原始數據類型的機制。
自J2SE 5.0以來,自動裝箱和取消裝箱功能將原始對象和對象自動轉換為原始數據類型。將原始數據類型自動轉換為對象稱為自動裝箱,反之亦然。
java.lang包的八個類在java中稱為包裝類。八個包裝類的列表如下:
| 基本類型 | 包裝類 | 
|---|---|
| boolean | Boolean | 
| char | Character | 
| byte | Byte | 
| short | Short | 
| int | Integer | 
| long | Long | 
| float | Float | 
| double | Double | 
為什麼需要包裝類?
將原始類型和包裝類分開以保持簡單是一個明智的做法。當需要一個適合像面向對象編程的類型時就需要包裝類。當希望數據類型變得簡單時就使用原始類型。
原始類型不能為null,但包裝類可以為null。包裝類可用於實現多態性。
下麵是一個簡單的程式,顯示了java中包裝類的不同方面應用。
import java.util.ArrayList;
import java.util.List;
public class WrapperClasses {
    private static void doSomething(Object obj){
    }
    public static void main(String args[]){
        int i = 10;
        char c = 'a';
        // 原始數據很容易使用
        int j = i+3;
        // 由包裝類實現的多態性,不能在這裏傳遞原始數據
        doSomething(new Character(c));
        List<Integer> list = new ArrayList<Integer>();
        // 包裝類可以在集合中使用
        Integer in = new Integer(i);
        list.add(in);
        // 自動裝箱負責原始到包裝器類的轉換
        list.add(j);
        //包裝類可以為 null
        in = null;
    }
}
包裝類示例:原始類型到包裝類型
public class WrapperExample1 {
    public static void main(String args[]) {
        // Converting int into Integer
        int a = 20;
        Integer i = Integer.valueOf(a);// converting int into Integer
        Integer j = a;// autoboxing, now compiler will write Integer.valueOf(a)
                        // internally
        System.out.println(a + " " + i + " " + j);
    }
}
輸出結果 -
20 20 20
包裝類示例:包裝類型到原始類型
public class WrapperExample2 {
    public static void main(String args[]) {
        // Converting Integer to int
        Integer a = new Integer(3);
        int i = a.intValue();// converting Integer to int
        int j = a;// unboxing, now compiler will write a.intValue() internally
        System.out.println(a + " " + i + " " + j);
    }
}
輸出結果 -
3 3 3
						上一篇:
								Java數組
												下一篇:
								Java按值調用和引用調用
					
					