【本節目标】
通過閱讀本節内容,你将了解到包裝類的基本概念與實作原理,并能借助包裝類解決一些業務邏輯上的問題。
包裝類的主要功能是針對于基本資料類型的對象轉換而實作的,并且随着JDK版本的更新,包裝類的功能也在發生改變,有着更多的支援。
認識包裝類
Object類最大的特點是所有類的父類,可以接收所有的資料類型,但是在這個過程中就存在有個問題:基本資料類型并不是一個類,是以現在如果要想将基本資料類型以類的形式進行處理,,那麼就需要對其進行包裝。
範例:以int資料為例實作一個包裝處理的定義
class Int {
private int data ; //包裝了一個基本資料類型
public Int(int data) {
this.data = data ;
}
public int intValue() {
return this.data ;
}
}
public class JavaDemo {
public static void main(String args[]) {
Object obj = new Int(10) ; //裝箱:将基本資料類型儲存在包裝類之中
int x = ((Int)obj).intValue() ; //拆箱:從包裝類對象中擷取基本資料類型
System.out.println(x * 2) ;
}
}
執行結果:20
基本資料類型進行包裝處理後,可以像對象一樣進行引用傳遞,同時也可以使用Object類進行接收,但是如果都已經可以發現基本資料類型與Object類型之間的缺陷,那麼JDK也早就發現了同樣的問題,是以在JDK1.0的時候就提供有了包裝類的概念,基本資料類型一共有八種,是以提供有八種包裝類,那麼這八種包裝類的基本定義如下:

圖一 包裝類
現在可以發現在Java中包裝類一共提供兩種類型:
- 對象型包裝類:(Object直接子類):Boolean、Character;
- 數值型包裝類(Number直接子類):Byte、Short、Integer、Long、Float、Double;
Number是一個抽象類,以後隻要是看見了Number都應該明确表示它是一個數字的概念,這個類定義有如下方法:
No. | 方法名稱 | 類型 | 描述 |
---|---|---|---|
01 | public byte byteValue() | 普通 | 從包裝類中擷取byte資料 |
02 | public short shortValue() | 從包裝類中擷取short資料 | |
03 | Public abstract int intValue() | 從包裝類中擷取int資料 | |
04 | public abstract long longValue() | 從包裝類中擷取long資料 | |
05 | public abstract float floatValue() | 從包裝類中擷取float資料 | |
06 | public abstract double doubleValue() | 從包裝類中擷取double資料 |
Number類中的方法就是直接提供有擷取包裝類中基本資料類型的功能,一共隻定義了六個方法。
想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。
本内容視訊來源于
阿裡雲大學 下一篇:帶你領會JDK的靈活拆裝 | 帶你學《Java面向對象程式設計》之五十六 更多Java面向對象程式設計文章檢視此處