首頁 >Java >java教程 >Java中的包裝類別是什麼? Java包裝類別的應用場景介紹

Java中的包裝類別是什麼? Java包裝類別的應用場景介紹

不言
不言原創
2018-09-14 16:32:228431瀏覽

這篇文章帶給大家的內容是關於Java中的包裝類別是什麼? Java包裝類別的應用場景介紹 ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

今天來講一下 Java 包裝類別的由來,及自動裝箱、拆箱的概念和原理。

什麼是包裝類型

Java 設計當初就提供了 8 種 基本資料型別及對應的 8 種包裝資料型別。我們知道 Java 是一種物件導向程式設計的高階語言,所以包裝類型正是為了解決基本資料類型無法物件導向程式設計所提供的。

以下是基本資料型別與對應的包裝類型。

##longLongfloatFloatdouble
基本資料類型 包裝類型
byte Byte
boolean Boolean
short Short
#char Character
int Integer

Java中的包裝類別是什麼? Java包裝類別的應用場景介紹

下面是包裝類型的繼承結構圖。

從以上圖表可以對基本類型和包裝類型有一個全面的了解。

包裝類別應用程式場景

1、集合類別泛型只能是包裝類別;

// 编译报错
List<int> list1 = new ArrayList<>();

// 正常
List<Integer> list2 = new ArrayList<>();

2、成員變數不能有預設值;

private int status;

基本資料型別的成員變數都有預設值,如以上程式碼status 預設值為0,如果定義中0 代表失敗,那樣就會有問題,這樣只能使用包裝類別Integer,它的預設值為null,所以就不會有預設值影響。

3、方法參數允許定義空值;

private static void test1(int status){
    System.out.println(status);
}
看以上程式碼,方法參數定義的是基本資料型別int,所以必須要傳一個數字過來,不能傳null,很多場合我們希望是能傳遞null 的,所以這種場合用包裝類別比較適合。

還有更多應用程式場景就不一一例舉了,歡迎留言共同探討包裝類別的更多的應用場景。

自動裝箱、拆箱

Java 5 增加了自動裝箱、拆箱機制,提供基本資料類型和包裝類型的相互轉換操作。

######自動裝箱#########自動裝箱即自動將基本資料型別轉換成包裝類型,在Java 5 之前,要將基本資料型別轉換成包裝類型只能這樣做,看下面的程式碼。 ###
Integer i1 = new Integer(8);

Integer i2 = Integer.valueOf(8);

// 自动装箱
Integer i3 = 8;
###以上 3 種都可以轉換,但在 Java 5 之前第 3 種方法是編譯失敗的,第 3 種方法也正是現在的自動裝箱功能。另外,第一種構造器方法也不建議使用了,已經標示為廢棄了。 ######其實自動裝箱的原理就是呼叫包裝類別的 valueOf 方法,如第 2 個方法中的 Integer.valueOf 方法。 #########自動拆箱#########自動拆箱即自動將包裝類型轉換成基本資料類型,與自動裝箱相反,有裝就有拆,很好理解。 ###
// 自动拆箱
int i4 = i3;

int i5 = i3.intValue();
###繼續在上面的例子,把 i3 賦值給 i4 就是實現的自動拆箱功能,自動裝箱的原理就是呼叫包裝類別的 xxValue 方法,如 i5 中的 Integer 的 intValue 方法。 ######自動裝箱、拆箱不只是體現在以上的例子,在方法接收參數、物件設定參數時都能自動裝箱拆箱。 ###

以上是Java中的包裝類別是什麼? Java包裝類別的應用場景介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn