天天看點

包裝才更美:初識包裝類 | 帶你學《Java面向對象程式設計》之五十五

上一篇:教你将好鋼用在刀刃上-應用抽象類 | 帶你學《Java面向對象程式設計》之五十四

【本節目标】

通過閱讀本節内容,你将了解到包裝類的基本概念與實作原理,并能借助包裝類解決一些業務邏輯上的問題。

包裝類的主要功能是針對于基本資料類型的對象轉換而實作的,并且随着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面向對象程式設計》之五十五

圖一 包裝類

現在可以發現在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面向對象程式設計文章檢視此處