Java基礎 第三節 第五課

我是小白呀 發表於 2020-11-28

概述

Java 提供了兩個型別系統, 基本型別與引用型別. 使用基本型別在於效率, 然而很多情況, 會建立物件使用, 因為物件可以做更多的功能. 如果想要我們的基本型別像物件一樣操作,就可以使用基本型別對應的包裝類. 如下:

基本型別對應的包裝類 (位於 java.lang 包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charChatacter
booleanBoolean

裝箱與拆箱

基本型別與對應的包裝類物件之間, 來回轉換的過程稱為 “裝箱” 與 “拆箱”:

  • 裝箱: 從基本型別轉換為對應的包裝類物件
  • 拆箱: 從包裝類物件轉換為對應的基本型別

用 Integer 與 int 為例:

裝箱

public static void main(String[] args) {
        Integer i = new Integer(4);  // 使用建構函式
        Integer iii = Integer.valueOf(4);  // 使用包裝類中的valueOf方法
    }

拆箱

public static void main(String[] args) {
        Integer i = new Integer(4);
        int num = i.intValue();
    }

自動裝箱與自動拆箱

由於我們經常要做基本型別與包裝類之間的轉換, 從 Java 5 (JDK 1.5) 開始. 基本型別與包裝類的裝箱, 拆箱動作可以自動完成. 例如:

public static void main(String[] args) {
        Integer i = 4;  // 自動裝箱. 相當於Integer i = Integer.valueOf(4);
        i = i + 5;  // 等號右邊: 將i物件轉成基本數值(自動拆箱) i.intValue() + 5;
        // 加法運算完成後, 再次裝箱, 把基本數值轉成物件.
    }

基本型別與字串之間的轉換

基本型別轉換 String 總共有三種方式, 檢視課後資料可以得知. 這裡只講最簡單的一種方式:

基本型別直接與””相連線即可;如:34+""

字串轉換為基本型別

除了 Character 類之外, 其他所有包裝類都具有 parseXxx 靜態方法可以將字串轉換為對於的基本型別:

  • public static byte parseByte(String s): 將字串引數轉換為對應的 byte 基本型別
  • public static short parseShort(String s): 將字串引數轉換為對應的 short 基本型別
  • public static int parseInt(String s): 將字串引數轉換為對應的 int 基本型別
  • public static long parseLong(String s): 將字串引數轉換為對應的 long 基本型別
  • public static float parseFloat(String s): 將字串引數轉換為對應的 float 基本型別
  • public static double parseDouble(String s): 將字串引數轉換為對應的 double 基本型別
  • public static boolean parseBoolean(String s): 將字串引數轉換為對應的 boolean 基本型別

程式碼使用: (僅以 Integer 類的靜態方法 parseXxx 為例)

public class Demo18WrapperParse {
    public static void main(String[] args) {
        int num = Integer.parseInt("100");
    }
}