JavaSE入門學習30:Java常用類之封裝類
一封裝類
我們對基礎資料型別 (Elementary Data Type)都非常熟悉,例如int、float、double、boolean、char等。基礎資料型別 (Elementary Data Type)是不具備對象的特性
的,比如基本類型不能調用方法、功能簡單。為了讓基礎資料型別 (Elementary Data Type)也具備對象的特性,Java為每個基礎資料型別 (Elementary Data Type)都提
供了一個封裝類,這樣我們就可以像操作對象那樣來操作基礎資料型別 (Elementary Data Type)。
封裝類(如:Integer,Double等)這些類封裝一個相應的基礎資料型別 (Elementary Data Type)數值,並為其提供了一系列操作。
基本類型和封裝類之間的對應關係:
封裝類主要提供了兩大類方法:
1將本類型和其他基本類型進行轉換的方法;
2將字串和本類型及封裝類互相轉換的方法。
二Integer封裝類
我們以java.lang.Integer封裝類為例,來看下封裝類的特性。
Integer封裝類的構造方法:
如下代碼所示:
Integer封裝類的常用方法:
執行個體:
public class Test{ public static void main(String args[]){ //定義int類型變數,值為86 int score1 = 86; //建立Integer封裝類對象,表示變數score1的值Integer score2=new Integer(score1); //將Integer封裝類轉換為double類型double score3=score2.doubleValue(); //將Integer封裝類轉換為float類型float score4=score2.floatValue(); //將Integer封裝類轉換為int類型int score5 =score2.intValue(); //輸出結果System.out.println("Integer封裝類:" + score2);System.out.println("double類型:" + score3);System.out.println("float類型:" + score4);System.out.println("int類型:" + score5); }}
編譯運行結果:
三基本類型和封裝類之間的轉換
基本類型和封裝類之間經常需要互相轉換,還是以Integer封裝類為例來進行講解,其他封裝類的用法基本相似。
看下面的程式碼範例:
在JDK1.5引入自動裝箱和拆箱的機制後,封裝類和基本類型之間的轉換就更加輕鬆便利了。那什麼是裝箱和拆箱
呢?我們分別來看下:
裝箱:把基本類型轉換成封裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱。
拆箱:和裝箱相反,把封裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱。
執行個體:
public class Test{ public static void main(String args[]){ //定義double類型變數 double a = 91.5; //手動裝箱 Double b = new Double(a); //自動裝箱 Double c = a; System.out.println("裝箱後的結果為:" + b + "和" + c); //定義一個Double封裝類對象,值為8 Double d = new Double(87.0); //手動拆箱 double e = d.doubleValue(); //自動拆箱 double f = d; System.out.println("拆箱後的結果為:" + e + "和" + f); }}
編譯運行結果:
四基本類型和字串之間的轉換
在程式開發中,我們經常需要在基礎資料型別 (Elementary Data Type)和字串之間進行轉換。其中,基本類型轉換為字串有三種法:
1使用封裝類的toString()方法;
2使用String類的valueOf()方法;
3用一個Null 字元串加上基本類型,得到的就是基本類型資料對應的字串。
再來看,將字串轉換成基本類型有兩種方法:
1調用封裝類的parseXxx靜態方法;
2調用封裝類的valueOf()方法轉換為基本類型的封裝類,會自動拆箱。
其他基本類型與字串的相互轉化這裡不再一一列出,方法都類似。
執行個體:
public class Test{ public static void main(String args[]){ double m = 78.5;//將基本類型轉換為字串String str1 = Double.toString(m); System.out.println("m 轉換為String型後與整數20的求和結果為: "+(str1+20));String str = "180.20";//將字串轉換為基本類型Double a = Double.valueOf(str);System.out.println("str 轉換為double型後與整數20的求和結果為: "+(a+20)); }}
編譯運行結果:
五封裝類總結
(1)所有的封裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類別Number的子類。
Number類的成員方法:
(2)Character類
1逸出序列
前面有反斜線(\)的字元代錶轉義字元,它對編譯器來說是有特殊含義的。下面列表展示了Java的逸出序列:
2Character類的成員方法: