我們知道java是物件導向的語言,其精髓之一是可以使用多態性,提高程式的彈性度。
但是java中有8個基本類 型:byte,short,int,long,float,double,char,boolean。它們是以值的形式存在於記憶體中,而不是物件。
它們不 是Object的子類,不能參與物件導向的開發。在java1.5版本以前以下的程式碼是不能通過的.
package com.souvc.api;public class Test { public static void main(String[] args) { String str = "hello"; doSome(str);// 可以,因为String是Object的子类 int i = 1; // 程序编译不通过,原因在于int不是Object的子类,不能使用多态性。 doSome(i); } public static void doSome(Object o) { // .... } }
問題出現的原因就是基本型別int沒有繼承關係,它不是Object的子類。所以,若想讓基本型別以物件的形式存在,我們就需要定義一個類別 Integer,然後用其實例來描述一個基本型別int。
這樣的好處在於,我們使用物件來描述基本類型數據,而類別又是繼承自Object的。從而可以讓基底 本類型參與物件導向的開發。好在,像Integer這樣的類別不需要我們定義,因為java已經提供了8中基本類型對應的包裝類別。
註:java1.5版本後出現了自動拆裝箱特性,上述程式碼可以正常編譯通過。自動拆裝箱我們後面會詳細描述。
對於8個基本類型,java提供了他們對應的包裝類別:
基本型別包裝類
byte java.lang.Byte
檢查的父類別是Object之外,其餘的都是繼承自:java.lang.Number Number是一個抽象類別。本身不能實例化。 Number 的子類別必須提供將表示的數值轉換為byte、double、float、int、long 和short 的方法比如:abstract double doubleValue() 以double形式傳回指定的數值abstract int intint(以int形式傳回指定的數值abstract float floatValue() 以float形式傳回指定的數值剩下的抽象方法請參閱API文件:java.lang.Number 。 現在我們來學習如何在基本類型與包裝類別之間相互轉換。 當我們需要將基本型別轉換為包裝類別時,我們可以呼叫包裝類別的一個靜態方法valueOf(): Integer i = Integer.valueOf(1);Double d = Double.valueOf(1.1 );
當我們需要將包裝類別轉換為基本型別時,我們可以使用包裝類別的方法xxxValue()方法(這裡不同的包裝類別方法名稱不完全一致,但都是以Value結尾): Integer i = new Integer(1);int n = i.intValue();Double d = new Double(1.1);double dn = d.doubleValue();
雖然我們可以通過上述的方法在基本型別與包裝類別之間相互轉換。但是在實際編寫程式碼時相對還是比較麻煩的。 java在1.5版本後推出了一個新的特性:自動拆裝箱。
以下程式碼在java1.4時編譯不通過,但在java1.5之後可以:
Integer in = 1;//可以自動將基本型別轉換為包裝類別 自動裝箱
那麼java是如何實現的自動拆裝箱呢?
Integer c = a+b => Integer c = Integer.valueOf (Integer ) + bf .intValue( ));
2.1.1 構造方法-Integer類別的建構方法34
2.1.2 常數-Integer類別的常數34
2.1.3 bitCount方法-取得二進位補碼中1的數量34
2.1.3 bitCount方法-取得二進位補碼中1的數量34
2.1.4〔2. ——取得byte型別的值35
2.1.5 compareTo方法-比較整數35
2.1.6 decode方法-字串解碼為int型別35
2.1.7 doubleValue方法-傳回double數值36
2.1.7 doubleValue方法-傳回double數值36
2.1.8 equals方法-判斷整數物件相等36
2.1.9 floatValue方法-取得float數值37
2.1.10 getInteger方法-取得整數的系統屬性值37
2.1.11 hashCode方法-產生整數的雜湊碼39
2.1.12 highestOneBit方法-取得整數二進位最高位元1的索引39
2.1.13 intValue()方法-取得int值40
2.1.14 longValue方法-取得long值40
2.1.1555 ——取得整數二進位最低位1的索引41
2.1.16 parseInt方法-將字串解析為int值41
2.1.17 reverse方法-反轉整數二進位補碼的位元順序43
2.1.18 reverseBytes方法-反轉整數位元組的順序44
2.1.19 shortValue方法-取得short值44
2.1.20 signum方法-取得整數符號44
2.1.21 toBinaryString方法-產生整數的二進位字串45
2.1.22 toHexString方法——生成整數的十六進製字符串45
2.1.23 toOctalString方法——生成整數的八進製字符串46
2.1 .25 valueOf方法-建立Integer物件49
2.2 Long類別-長整型類別50
2.2.1 建構方法-Long類別的建構方法51
2.2.1 建構方法-Long類別的建構方法51
2.2.2『2.2.2〜2.2.2〜2.2.2〜2.2.2〜2.2.2〜2.2.2〜2.2.2〜2.2.2〜2.2.2〜2.2.2〜2.2.2]常數的常數51
2.2.3 bitCount方法-取得二進位補碼中1的數量51
2.2.4 byteValue方法-取得byte值51
2.2.5 compareTo方法-比較長整數52
2.2.6decode字串解碼為long型別52
2.2.7 doubleValue方法-傳回double數值53
2.2.8 equals方法-判斷長整數物件相等53
2.2.9 floatValue方法-取得float數值相等53
2.2.9 floatValue方法-取得float數值值方法-取得長整數的系統屬性值54
2.2.11 hashCode方法-產生長整數的雜湊碼56
2.2.12 highestOneBit方法-取得長整數二進位最高位元1的索引56
2.2.13 int ()方法-取得int值57
2.2.14 longValue方法-取得long值57
2.2.15 lowestOneBit方法-取得長整數二進位最低位1的索引57
2.2.16 parseLong方法-將字串解析為long值58
2.2.17 reverse方法-反轉長整數二進位補碼的位元順序60
2.2.18 reverseBytes方法-反轉長整數位元組的順序60
2.2.19shortValue方法-取得short值61
2.2.20 signum方法-取得長整數符號61
2.2.21 toBinaryString方法-產生長整數的二進位字串61
2.2.23 toOctalString方法-產生長整數的八進位字串62
2.2.24 toString方法-產生長整數的十進位字串63
2.3.1 構造方法-Short類別的建構方法67
2.3.2 常數-Short類別的常數67
2.3.3compareTo方法-比較短整數類型的常數67
2.3.3 compareTo方法-比較短整數67333. .4 decode方法-字串解碼為short型別68
2.3.5 doubleValue方法-傳回double數值68
2.3.6 equals方法-判斷短整數物件數位69
2.3.8 hashCode方法-產生短整數的雜湊碼69
2.3.9 intValue()方法-取得int值70
2.3.10 longValue方法-取得long值70
2.3.11 parseortort方法— —將字串解析為short值70
2.3.12 reverseBytes方法-反轉短整數位元組的順序72
2.3.13 shortValue方法-取得short值72
2.3.14 toString方法-產生短整數的方法-產生短整數的方法-產生短整數的方法十進位字串73
2.3.15 valueOf方法-建立Short物件73
2.4 Boolean類別-布林類別75
2.4.1 類型建構方法-Booleanlean的構造方法-Boolean. Boolean類別的常數75
2.4.3 booleanValue方法-取得boolean值76
2.4.4 compareTo方法-比較布林值76
2.4.5 equals方法-判斷相等77
2.4.6 站方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法-取得布林方法吧類型的系統屬性值77
2.4.7 hashCode方法-產生布林物件的雜湊碼78
2.4.8 parseBoolean方法-將字串解析成boolean值78
2.4.9 toString方法-產生布林值的字串78
2.4.10 valueOf方法-建立布林物件79
2.5 Byte類別-位元組物件80
2.5.1 建構法-Byte類別的建構方法80
2.5.2 常數-Bytearec20
2.5.3㟎2.5.3〵類的常數物件80
2.5.4 decode方法-將字串解碼為Byte值81
2.5.5 doubleValue方法-取得double值82
2.5.6 equals方法-判斷位元組相等82
2.5.7 —取得float值83
2.5.8 hashCode方法-產生位元組物件的雜湊碼83
2.5.9 intValue方法-取得int值83
2.5.10 longValue方法-取得long值83
2.5.11 parseByte方法-將字串解析為byte值84
2.5.12 shortValue方法-取得short值85
2.5.13 toString方法-產生位元組值的十進位字串85
2.5.14valueOfvalueOfvalueOf] Byte物件86
2.6 Character類別-字元類別88
2.6.1 建構方法-Character類別的建構方法88
2.6.2 常數-Character類別的方法常數-88
2.6.2 常數-Character類別的方法常數計算指定字元代碼點的數量89
2.6.4 charValue方法-取得char值89
2.6.5 codePointAt方法-取得字元陣列元素的代碼點90
2.6.6 codePointBefore方法-取得字元陣列索引前一個元素的代號點91
2.6.7 codePointCount方法-傳回字元陣列的子數組中碼點的數量93
2.6.8 compareTo方法-比較字元物件94
2.6.9 equals方法-判斷字元物件相等95
2.6.10 getNumericValue方法-傳回字元表示的int值95
2.6.11 getType方法-傳回一個指示字元的常規類別的值97
2.6.12 hashCode方法-產生字元物件的雜湊碼97
2.6.12 hashCode方法-產生字元物件的雜湊碼97
2.6.13 isDefined方法-判斷是否為Unicode字元98
2.6.14 isDigit方法-判斷是否為數位字元98
2.6.15 isLetter方法-判斷是否為字母字元999998
2.6.15 isLetter方法-判斷是否為字母字元9999999998分。是否為小寫字元100
2.6.17 isUpperCase方法-判斷是否為大寫字元100
2.6.18 toLowerCase方法-轉換為小寫字元101
2.6.19 toUpperCase方法-轉換為大寫字元107. ——雙精確度數字類102
2.7.1 構造方法——Double類的構造方法102
2.7.2 常數——Double類的常數102
2.7.3 byteValue方法——獲取byte值102
2.7.3 byteValue方法——獲取byte值102
4 compare方法-比較雙精確數字物件103
2.7.5 compareTo方法-比較兩個Double物件103
2.7.6 intValue方法-將此Double值以int形式傳回104
2.7.7 doubleleleleleleh-ToLongBits方法-ToLongBits方法-ToLongBits方法-ToLongBits方法-ToLongBits方法-ToLongBits方法-ToLongBits方法-ToLongBits一樣”傳回指定浮點值的表示形式104
2.7.8 doubleToRawLongBits方法-保留NaN值傳回指定浮點值的表示方式105
2.7.9 doubleValue方法-取得double值105
2.7.9 doubleValue方法-取得double值105
2.7.10eubleals Double物件是否相等106
2.7.11 floatValue方法-取得float值107
2.7.12 hashCode方法-產生Double 物件的雜湊碼107
2.7.13 isInfinite方法-產生Double 物件的雜湊碼107
2.7.13 isInfinite方法-資料
2.7.14 isNaN方法-判斷Double值是否為非數字值108
2.7.15 longBitsToDouble方法-傳回定位表示形式的double值109
2.7.16 longValue方法-取得long值110
值117. 17 parseDouble方法-將字串解析為double值110
2.7.18 shortValue方法-取得short值110
2.7.19 toHexString方法-產生雙精確數字的十六進位字串111
2.7.21 valueOf方法-建立Double物件112
2.8.1 構造方法-Float類別的建構方法113
2.8.2 常數-Float類別的常數114
2.8.3 byteValue方法-取得物件值114
2.8.4、) 114
2.8.5 compareTo方法-比較兩個Float物件所表示的數值115
2.8.6 doubleValue方法-取得double值115
2.8.7 equals方法-判斷Double11155
2.8.7 equals方法-判斷Double11158525115853535353553535,053115 月。 ——傳回浮點值的表示形式116
2.8.9 floatToRawIntBits方法——保留非數字值回傳指定浮點值的表示形式117
2.8.10 floatValue方法——取得float值118
2.8.10 floatValue方法——取得float值118
2.8.11 hashCode —傳回Float物件的雜湊碼118
2.8.12 intBitsToFloat方法-傳回指定位元表示形式的float值118
2.8.13 intValue方法-取得int值119
2.8.14 isInfinite大小是否為無窮大120
2.8.15 isNaN方法-判斷Float值是否為非數字值120
2.8.16 longValue方法-取得long值121
2.8.17 parseFloat方法-將字串值解析成float 121
2.8.18 shortValue方法-取得short值122
2.8.19 toHexString方法-產生浮點數的十六進位字串122
2.8.20 toString方法-產生浮點數的十進位字串122123🟎2. .21 valueOf方法-創建浮點數物件124
以上就是包裝類別的內容,更多相關內容請關注PHP中文網(www.php.cn)!