Java語言是一種面向?qū)ο蟮恼Z言,但Java中的基本數(shù)據(jù)類型卻是非面向?qū)ο蟮?,這在實際使用中存在著許多不便,為了解決這種不足,在設(shè)計類時為每一種基本數(shù)據(jù)類型設(shè)計了相應(yīng)的類,這樣八種與基本數(shù)據(jù)類型相對應(yīng)的類統(tǒng)稱為包裝類(WrapperClass),有些地方還會翻譯成外覆類或數(shù)據(jù)類型。
包裝類均位于java.lang包,包裝類和基本數(shù)據(jù)類型的對應(yīng)關(guān)系如下表所示:
對于包裝類說,這些類的用途主要包含兩種:
a、作為和基本數(shù)據(jù)類型對應(yīng)的類類型存在,方便涉及到對象的操作。
b、包含每種基本數(shù)據(jù)類型的相關(guān)屬性如最大值、最小值等,以及相關(guān)的操作方法(這些操作方法的作用是在基本類型數(shù)據(jù)、包裝類對象、字符串之間提供轉(zhuǎn)化!)。
所有的包裝類(WrapperClass)都有共同的方法。
在實際轉(zhuǎn)換時,使用Integer類的構(gòu)造方法和Integer類內(nèi)部的intValue方法實現(xiàn)這些類型之間的相互轉(zhuǎn)換,實現(xiàn)的代碼如下:
在Integer類內(nèi)部包含了一些和int操作有關(guān)的方法,下面介紹一些比較常用的方法:
1.parseInt方法
publicstaticintparseInt(Strings)
該方法的作用是將數(shù)字字符串轉(zhuǎn)換為int數(shù)值。在以后的界面編程中,將字符串轉(zhuǎn)換為對應(yīng)的int數(shù)字是一種比較常見的操作。
使用示例如下:
則int變量n的值是123,該方法實際上實現(xiàn)了字符串和int之間的轉(zhuǎn)換,如果字符串都包含的不是都是數(shù)字字符,則程序執(zhí)行將出現(xiàn)異常。(說明:異常的概念將在后期進行講述)
另外一個parseInt方法:
publicstaticintparseInt(Strings,intradix)
則實現(xiàn)將字符串按照參數(shù)radix指定的進制轉(zhuǎn)換為int。
使用示例如下:
這樣可以實現(xiàn)更靈活的轉(zhuǎn)換。
1.toString方法
publicstaticStringtoString(inti)該方法的作用是將int類型轉(zhuǎn)換為對應(yīng)的String類型。使用示例代碼如下:
則字符串s的值是”1000”。
自動裝箱的過程:每當需要一種類型的對象時,這種基本類型就自動地封裝到與它相同類型的包裝中。
自動拆箱的過程:每當需要一個值時,被裝箱對象中的值就被自動地提取出來,沒必要再去調(diào)用intValue()和doubleValue()方法。
自動裝箱與拆箱的功能事實上是編譯器來幫您的忙,編譯器在編譯時期依您所編寫的語法,決定是否進行裝箱或拆箱動作。
例如:
Integeri=100;
相當于編譯器自動為您作以下的語法編譯:
Integeri=newInteger(100);
所以自動裝箱與拆箱的功能是所謂的“編譯器蜜糖”(CompilerSugar),雖然使用這個功能很方便,但在程序運行階段您得了解Java的語義。
例如下面的程序是可以通過編譯的:
Integeri=null;
intj=i;
這樣的語法在編譯時期是合法的,但是在運行時期會有錯誤。
因為這種寫法相當于:
Integeri=null;
intj=i.intValue();
null表示i沒有參考至任何的對象實體,它可以合法地指定給對象參考名稱。
由于實際上i并沒有參考至任何的對象,所以也就不可能操作intValue()方法,這樣上面的寫法在運行時會出現(xiàn)NullPointerException錯誤。
聯(lián)系客服