目標:
- 掌握包裝類別的作用
- 掌握包裝類別的自動裝箱及自動拆箱的操作
- 掌握包裝類別的轉換操作
一切皆對象,8種基本數據類型不是對象。
把int包裝成一個類別,這樣就可以以對象的形式操作基本數據類型。
序號 | 基底資料型別(非物件) | 包裝類別(物件) |
1 | int | Integer |
2 | char | Character |
3 | short | Short |
4 | long | Long |
5 | float | Float |
6 | double | Double |
7 | boolean | Boolean |
8 | byte | Byte |
這8種包裝類別,所繼承的父類不全相同。
可以從JDK檔案中發現包裝類別中的繼承關係:
- Integer、Byte、Float、Double、Short、Long屬於Number類別的子類別。
- Character屬於Object的直接子類別。
- Boolean屬於Object的直接子類別。
Number是一個抽象類別,將數字包裝類別中的內容變為基底資料型別。
方法 | 類型 | 描述 |
public byte byte Value() | 普通 | 以byte形式傳回指定的數值 |
public abstract double doubleValue() | 普通 | 以double形式傳回指定的數值 |
public abstract float floatValue() | 普通 | 以float形式傳回指定的數值 |
public abstract int intValue() | 普通 | 以int形式傳回指定的數值 |
public abstract long longValue() | 普通 | 以long形式傳回指定的數值 |
public short short Value() | 普通 | 以short形式傳回指定的數值 |
裝箱與拆箱
- 將基底資料型別變為包裝類別稱為裝箱。
- 將包裝類別變為基底資料型別稱為拆箱。
裝箱及拆箱操作:
public class WrapperDemo{
public static void main(String args[]){
int x = 30 ; // 宣告一個基底資料型別
Integer i = new Integer(x) ; // 裝箱:將基底資料型別變為包裝類別
int temp = i.intValue() ;// 拆箱:將包裝類別變為基底資料型別
}
};
浮點數裝箱及拆箱
public class WrapperDemo{
public static void main(String args[]){
float f = 30.3f ; // 宣告一個基底資料型別
Float x = new Float(f) ; // 裝箱:將基底資料型別變為包裝類別
float y = x.intValue() ;// 拆箱:將包裝類別變為基底資料型別
}
};
自動裝箱及拆箱操作
public class WrapperDemo{
public static void main(String args[]){
Integer i = 30 ; // 自動裝箱成Integer
Float f = 30.3f ; // 自動裝箱成Float
int x = i ; // 自動拆箱為int
float y = f ; // 自動拆箱為float
}
};
包裝類別應用(Integer、Float為例)
在包裝類中還存在一個最大的特點就是可以將字符串變為指定的數據類型。
Integer類別(字串轉int型)
public static int parseInt(String s) throws NumberFormaException
Float類別(字串轉float型)
public static float parseInt(String s) throws NumberFormaException
字串變為基底資料型別
public class WrapperDemo{
public static void main(String args[]){
String str1 = "30" ; // 由數字組成的字串
String str2 = "30.3" ; // 由數字組成的字串
int x = Integer.parseInt(str1) ; // 將字串變為int型
float f = Float.parseFloat(str2) ; // 將字串變為float型
System.out.println("整數次方:" + x + " * " + x + " = " + (x * x)) ;
System.out.println("小數次方:" + f + " * " + f + " = " + (f * f)) ;
}
};
執行結果:
整數次方:30 * 30 = 900
小數次方:30.3 * 30.3 = 918.08997
以上的操作,字串中的資料必須由數字組成,否則轉換時將會出現程式錯誤。
- Java中有8種基本數據類型的包裝類別,可以將基本數據類型以類別的形式進行操作。
- 將基底資料型別變為包裝類別稱為裝箱,將包裝類別變為基底資料型別稱為拆箱。
- 在JDK1.5之後提供了自動裝箱和自動拆箱的操作。
- 實際上這8種數據類型是Java中提供的類別庫,可以發現裡面的定義也是使用所學過的全部基本概念
- 使用包裝類別可以將字符串進行基本數據類型的轉換。
留言列表