目標
1)包裝類的作用,
2)掌握包裝類的自動裝箱和自動拆箱操作。
3)掌握包裝類的轉換操作。
具體內容
一切皆對象,八種基本數據類型不是對象。
把Int包裝成一個類,這樣的一個類就可以以對象的形式操作基本數據類型。
包裝類
這八種包裝類所繼承的父類不全都相同。
1)Integer ,Byte,Float,Double,Short,Long都屬於Number類的子類,Number類本身提供了一系列的返回
以上六種基本數據類型的操作。
2)Character屬於Object子類。
3)Boolean屬於Object子類。
Number類的作用
那么Number類是一個抽象類,主要是將數字包裝類中內容變成基本數據類型。
主要操作方法如下:
以Integer和Float為例:
裝箱及拆箱
1)將基本數據類型變成包裝類稱為裝箱。
2)將包裝類的類型變為基本數據類型稱為拆箱。
public class WrapperDemo01{ public static void main(String args[]){ int x = 30 ; // 基本數據類型 Integer i = new Integer(x) ; // 裝箱:將基本數據類型變為包裝類 int temp = i.intValue() ;// 拆箱:將一個包裝類變為基本數據類型 } };
下面再以小數為例:
public class WrapperDemo02{ public static void main(String args[]){ float f = 30.3f ; // 基本數據類型 Float x = new Float(f) ; // 裝箱:將基本數據類型變為包裝類 float y = x.floatValue() ;// 拆箱:將一個包裝類變為基本數據類型 } };
在JDK1.5之前,對於程序本身來說,包裝類不能直接進行“+,-,*,/,++,--”等操作,因為是一個類,
所以不能這么操作。
但是在JDK1.5之后,對程序的包裝類功能進行了改變,增加了自動裝箱和自動拆箱功能,而且,可以使用包裝類直接進行數字運行。
自動裝箱和自動拆箱也就是,可以自動由int-->Integer類型轉變,而自動拆箱就是自動由Integer-->int轉變。
public class WrapperDemo03{ public static void main(String args[]){ Integer i = 30 ; // 自動裝箱成Integer Float f = 30.3f ; // 自動裝箱成Float int x = i ; // 自動拆箱為int float y = f ; // 自動拆箱為float } };
在包裝類中還有一個最大的特點,
將字符串變為指定的數據類型。
如:講一個全由數字組成的字符串變為一個int或者float類型的數據。
在Integer和Float類中分別提供了以下兩種方法:
1)Integer類(字符串轉int類型):public static int parseInt(String s);
2)Float類(字符串轉float類型):public static float parseFloat(String s);
static關鍵字修飾的方法,直接由類調用
注意:這里的String s,必須由數字組成。
public class WrapperDemo04{ public static void main(String args[]){ String str1 = "30" ; // 由數字組成的字符串 String str2 = "30.3" ; // 由數字組成的字符串 int x = Integer.parseInt(str1) ; // 將字符串變為int型 float f = Float.parseFloat(str2) ; // 將字符串變為int型 System.out.println("整數乘方:" + x + " * " + x + " = " + (x * x)) ; System.out.println("小數乘方:" + f + " * " + f + " = " + (f * f)) ; } };
運行結果:
整數乘方:30 * 30 = 900
小數乘方:30.3 * 30.3 = 918.08997
從初始化參數獲取字符串:
public class WrapperDemo05{ public static void main(String args[]){ int x = Integer.parseInt(args[0]) ; // 將字符串變為int型 float f = Float.parseFloat(args[1]) ; // 將字符串變為int型 System.out.println("整數乘方:" + x + " * " + x + " = " + (x * x)) ; System.out.println("小數乘方:" + f + " * " + f + " = " + (f * f)) ; } };
總結
1)java中有8種基本數據類型的包裝類,可以將基本數據類型以類的形式操作。
2)基本數據類型變為包裝類的過程,稱為裝箱,將包裝類變為基本數據類型的過程稱為拆箱。
3)在JDK1.5之后,提供了自動裝箱和自動拆箱功能。
4)使用包裝類,可以將字符串實現基本數據類型的轉換操作。