Java 中的包裝類詳解
在 Java 中,基本資料型別(如 int
, char
, boolean
等)是不可變的,不能被繼承或擴充套件。為了克服這些限制,Java 提供了包裝類(Wrapper Classes),它們是基本資料型別的引用型別對應物。每個包裝類都提供了相應的構造方法、靜態工廠方法、常量和實用工具方法。
包裝類的種類
Java 為每個基本資料型別提供了一個對應的包裝類:
byte
-Byte
short
-Short
int
-Integer
long
-Long
float
-Float
double
-Double
boolean
-Boolean
char
-Character
包裝類的方法
Integer
類
// 建立 Integer 物件
Integer num1 = new Integer(10);
Integer num2 = Integer.valueOf(20);
// 比較兩個 Integer 物件
boolean isEqual = num1.equals(num2); // false
// 獲取 int 值
int intValue = num1.intValue(); // 10
// 轉換為字串
String toString = num1.toString(); // "10"
// 與字串相互轉換
Integer valueOf = Integer.valueOf("30");
String toString2 = Integer.toString(30);
// 進位制轉換
String binaryString = Integer.toBinaryString(10); // "1010"
String octalString = Integer.toOctalString(10); // "12"
String hexString = Integer.toHexString(10); // "a"
// 解析字串為整數
int parseInt = Integer.parseInt("40"); // 40
// 範圍檢查
boolean isBetween = (10 >= Integer.MIN_VALUE) && (10 <= Integer.MAX_VALUE); // true
Character
類
// 建立 Character 物件
Character ch1 = new Character('A');
Character ch2 = Character.valueOf('B');
// 比較兩個 Character 物件
boolean isEqual = ch1.equals(ch2); // false
// 判斷字元是否為大寫
boolean isUpperCase = Character.isUpperCase(ch1); // true
// 判斷字元是否為小寫
boolean isLowerCase = Character.isLowerCase(ch2); // true
// 判斷字元是否為數字
boolean isDigit = Character.isDigit('5'); // true
// 轉換為大寫
char toUpperCase = Character.toUpperCase(ch2); // 'B'
// 轉換為小寫
char toLowerCase = Character.toLowerCase(ch1); // 'a'
// 獲取字元數字值
int digitValue = Character.digit('5', 10); // 5
包裝類的自動裝箱與拆箱
Java 5 引入了自動裝箱(Autoboxing)和拆箱(Unboxing)的特性,允許基本資料型別和它們的包裝類之間自動轉換。
// 自動裝箱
int num = 10;
Integer boxedNum = num; // 自動裝箱
// 自動拆箱
int unboxedNum = boxedNum; // 自動拆箱
總結
包裝類為基本資料型別提供了引用型別的特性,如物件引用、繼承和多型。它們還提供了許多實用的方法,用於執行型別轉換、字串處理和範圍檢查等操作。自動裝箱和拆箱的特性使得基本資料型別和包裝類之間的轉換更加方便和直觀。透過理解和使用包裝類,可以更有效地處理 Java 程式中的資料型別轉換和操作。