java面向物件——包裝類
阿新 • • 發佈:2018-12-15
在某些場合(集合)中要求所有的資料內容都是物件,但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的編譯器在編譯器的“預處理”工作