天天看點

2020-10-16包裝類包裝類

包裝類

  • 包裝類
    • 裝箱和拆箱
    • 自動裝箱和自動拆箱

包裝類

基本資料類型,使用起來非常的友善,但是沒有對應的方法來操作這些基本類型的資料,可以使用一個類,把基本資料類型封裝起來,在類中定義一些方法,這個類叫做包裝類,我們可以使用類中的方法來操作這些基本類型的資料;

裝箱和拆箱

基本資料類型和對應的包裝類對象之間,來回轉換的過程
           

裝箱:從基本資料類型轉換為對應的包裝類對象

以Integer為例:

構造方法:(已過時)

Integer(int value) 建構了一個新配置設定的 Integer表示指定的 int價值。

Integer(String s) 建構了一個新配置設定的 Integer表示 int值表示的 String參數

靜态方法:

static Integer valueOf(int i) 傳回一個 Integer執行個體表示指定的 int價值。

static Integer valueOf(String s) 傳回一個 Integer對象持有指定的 String價值

拆箱:從包裝類對象轉換為對應的基本類型

成員方法:

int intValue() 以int類型傳回該integer類型。

/**
 * Integer的裝箱和拆箱
 *      裝箱:
 *          把基本類型的資料變成包裝類
 *          構造方法:
 *              Integer(int value) 建構了一個新配置設定的 Integer表示指定的 int價值。
 *              Integer(String s)  建構了一個新配置設定的 Integer表示 int值表示的 String參數
 *          靜态方法:
 *              static Integer valueOf(int i) 傳回一個 Integer執行個體表示指定的 int價值。
 *              static Integer valueOf(String s) 傳回一個 Integer對象持有指定的 String價值。
 *
 *      拆箱:
 *          在包裝類中取出基本資料類型的資料
 *           成員方法:
 *              int intValue() 以int類型傳回該integer類型
 * @author Administrator
 * @date 2020-10-15  下午 16:30
 */
public class Demo01Integer {
    public static void main(String[] args) {
        demo01();
        demo02();
    }

    /**
     * 拆箱:
     */
    private static void demo02() {
        Integer number = new Integer(9390);
        int i = number.intValue();
        System.out.println(i);
        System.out.println();

    }

    /**
     * 裝箱:
     *      Integer(int value) 建構了一個新配置設定的 Integer表示指定的 int價值。
     *      Integer(String s)  建構了一個新配置設定的 Integer表示 int值表示的 String參數
     */
    private static void demo01() {
        //構造方法 已過時
        Integer number = new Integer(9390);
        Integer numberOne = new Integer("13456");
        System.out.println(number);
        System.out.println(numberOne);
        System.out.println();
        //靜态方法
        Integer valueOne = Integer.valueOf(1010);
        // Integer value = Integer.valueOf("a"); NumberFormatException 數字格式異常 隻能轉換對應類型
        Integer valueTwo = Integer.valueOf("9436");
        System.out.println(valueOne);
        System.out.println(valueTwo);
        System.out.println();

    }
}
           
9390
13456

1010
9436

9390
           

自動裝箱和自動拆箱

由于我們要經常做基本資料類型和包裝類之間的轉換,從java 5 (JDK 1.5)開始,基本資料類型的裝箱和拆箱操作可以自動完成。

Integer i = 4 相當于 Integer i = Integer.valueOf(4);

i= i+5; 相當于 i.Integer.valueOf()+5; 加法運算完之後,再次裝箱,把基本數值轉換成對象;