首頁 > 軟體

Java十分鐘精通包裝類的使用與操作

2022-03-11 19:00:58

包裝類

何為包裝類?

基本型別包裝類的概述: 將基本資料型別封裝成物件的好處在於可以在物件中定義更多的功能方法操作該資料 包裝類是將基本資料型別的值包裝為Java中的物件,Java語言為8種基本資料型別分別提供了包裝類 首先看一下八巨量資料型別的包裝類:

包裝型別出現的原因: 因為Java是一個物件導向的語言,基本型別並不具有物件的性質,為了與其他物件“接軌”就出現了包裝型別,它相當於將基本型別“包裝起來”,使得它具有了物件的性質,並且為其新增了屬性和方法,豐富了基本型別的操作

常用的操作:用於基本資料型別與字串之間的轉換

Integer類: 在這裡就講一下這個類,其他七個可以去查官方檔案,用法什麼的都是一樣的。

Integer的構造方法:

Integer(int value)   //構造一個新分配的 Integer 物件,它表示指定的 int 值
Integer(String s)  // 構造一個新分配的 Integer 物件,它表示 String 引數所指示的 int 值。

例:

Integer i1 = new Integer(123);
Integer i2 = new Integer("123");
System.out.println(i1);
System.out.println(i2);
//兩者的結果輸出都是123,這就是兩個構造方法的使用

最重要的就是String和int型別的相互轉換,當然這就需要用到Integer的一些方法:

首先,

int----->String:

// int----String  有兩個方法
int a = 100;
//方法一: 直接拼接
String s1 = "" + a;   //方便簡潔的方法
System.out.println(s1);

//方法二: String包裝類裡面的 valueOf(int i) 方法
//返回的 int引數的字串表示形式。
String s2 = String.valueOf(a);  //傳入整數即可,需要用String型別接收
System.out.println(s1);

String----->int:

//方法一:
//String---->Integer----->int
//先將String轉為Integer包裝類,然後使用Integer內的方法intValue() 返回int
String s = "100";
Integer i = Integer.valueOf(s);
i.intValue();    //Integer內的方法intValue() 返回int
System.out.println(i);


//方法二:
//Integer方法: parseInt(String s) ,將字串引數作為帶符號的十進位制整數
int y = Integer.parseInt(s);
System.out.println(s);

Integer的equals方法:

Integer的equals方法繼承自Object,並且進行了重寫,也就是判斷兩個Integer值是否相等:

Integer i1 = new Integer(123);  //輸入int型的123
Integer i2 = new Integer("123");  //輸入String型的123
boolean b = i1.equals(i2);
System.out.println(b);

//這裡輸出的數 true
//Integer型別的物件 i1 和 i2包含的值相等時;其他情況返回false

Integer的其他主要方法,紅色字型便是方法名:大家可以自行去嘗試

基本型別和包裝型別的總結:

  • 基本型別的優勢:資料儲存相對簡單,運算效率比較高
  • 包裝類的優勢:有的容易,比如集合的元素必須是物件型別,滿足了java一切皆是物件的思想
  • 宣告方式不同:基本型別不適用new關鍵字,而包裝型別需要使用new關鍵字來在堆中分配儲存空間
  • 儲存方式及位置不同:基本型別是直接將變數值儲存在堆疊中,而包裝型別是將物件放在堆中,然後通過參照來使用;
  • 初始值不同:基本型別的初始值如int為0,boolean為false,而包裝型別的初始值為null
  • 使用方式不同,基本型別直接賦值直接使用就可以

在Java中,還有很多的類,比如Math,System,Date等等,若有需要這些都可以參考Java官方檔案。

自動裝箱和拆箱:

裝箱:把基本資料型別轉換成相應的包裝型別

拆箱:把包裝型別型別轉換成相應的基本資料型別

裝箱:

//這是一個Integer普通的構造:
Integer i1 = new Integer(100);
//而這個寫法就是自動裝箱,其實這個底層也做了 new Integer(100)
Integer i1 = 100;

//這兩者效果是一樣的

拆箱:

//比如要給i1加上200
Integer i1= 100;
//因為現在i1是參照資料型別,得先轉換成基本資料型別
i1 = i1.intValue()+200;   //這個叫手動拆箱
System.out.println(i1);
//這樣輸出就是300

//自動拆箱:
nteger i1 = 100;
i1+=200;  //這個就是自動拆箱,
//其實這個自動拆箱底層完成了一次拆箱和一次裝箱
//首先i2.intValue(),    然後i2 = i2+200
System.out.println(i1);

但是我們會發現一個小問題:

//當i為null的時候:
Integer i = null;
i+=100;
System.out.println(i);
//這樣執行會報一個NullPointerException的錯誤

//所以我們需要新增一個判斷:
Integer i = null;
if(i!=null){
	i+=100;
}
System.out.println(i);

所以我們需要注意:

只要是物件,在操作前,必須做一個不為null的判斷

實際上,包裝類比基本型別更好用——基本型別能做的事情,包裝類也能做。 但包裝類能做的,基本型別不一定能做,比如要賦一個 null 值。

到此這篇關於Java十分鐘精通包裝類的使用與操作的文章就介紹到這了,更多相關Java 包裝類內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com