1. 程式人生 > >java面向物件——包裝類

java面向物件——包裝類

在某些場合(集合)中要求所有的資料內容都是物件,但java中8種基本資料型別定義的變數並不是物件,為了滿足該場合的需求就需要對變數進行物件化處理,此時藉助包裝類

常用的包裝類

int => 採用java.lang.Integer類包裝(重點) char => java.lang.Character類

byte => java.lang.Byte類 short => java.lang.Short類

long => java.lang.Long類 double => java.lang.Double類

float => java.lang.Float類 boolean=> java.lang.Boolean類

Integer類(重點)

java.lang.Integer類被final關鍵字修飾表示該類不能被繼承。 該類的內部包裝了一個int型別的變數作為該類的成員變數,實現了int型別的包裝。

常用的方法

Integer(int value) - 根據引數指定的整數值來構造物件。
Integer(String s)  - 根據引數指定的字串來構造物件。
int intValue()  -  用於返回該物件中的整數值。
static int parseInt(String s)  -  用於將引數指定的字串轉換為整數並返回。
static String toBinaryString(int i)  -  用於將引數指定的整數拆分字串形式的二進位制並返回。
static String toHexString(int i)  -  用於將引數指定的整數拆分為字串形式的十六進位制並返回。
static Integer valueOf(String s)  -  用於將引數指定的字串轉換為Integer物件


Integer it1 = new Integer(12);
System.out.println("it1 = " + it1); //自動呼叫toString() 12
Integer it2 = new Integer("34");
//Integer it2 = new Integer("34a"); 產生數字格式異常
System.out.println("it2 = " + it2); //34

編譯器對包裝類的支援

jdk5釋出之前,使用包裝類物件進行運算時,需要較為繁瑣的“拆箱”和“裝箱”操作,即運算前先包裝類物件所封裝的基本型別資料,運算後再將結果封裝為包裝類物件。

裝箱和拆箱的概念

裝箱就是指從int型別向Integer型別的轉換。

拆箱就是指從Integer型別向int型別的轉換。

從jdk1.5開始提供了自動裝箱和自動拆箱機制。

Integer i = Integer.valueOf(100);
Integer j = Integer.valueOf(200);
Integer k = Integer.valueOf(i.intValue() + j.intValue());
------------------------------------------------------------------------------------------------
Integer i = 100;
Integer j = 200;
Integer k = i+j;
事實上,JDK5的自勱“拆箱”和“裝箱”是依靠JDK5的編譯器在編譯器的“預處理”工作