Java中為什麼要引入包裝類?
java中為8種基本資料類型又對應的準備了8種包裝類
包裝類是引用資料類型,父類是Object。
思考:為什麼要再提供8中包裝類呢?
假設有這樣一個方法:它的形式參數是Object型
它能接收所有引用資料類型,因為Object類是所有類的父類,不能接受基本資料類型。
如果我想傳一個int型數字進去,該怎麼解決?
看下面一個例子:
測試代碼:
public class Test01 {
//形式參數隻接受引用類型
public static void superPrint(Object obj) {
System.out.println(obj.toString());
}
public static void main(String[] args) {
int i = 100;
//首先,你得把這個數字進行包裝,讓一個類帶着它傳進方法裡面
//執行個體化一個包裝類,儲存i的值
MyInt myInt = new MyInt(i);
Test01.superPrint(myInt);
}
}
//自己寫一個包裝類,儲存int數字的類
class MyInt {
//儲存數的值
private int value;
//setter and getter
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
//構造方法
public MyInt() {
}
public MyInt(int value) {
this.value = value;
}
//重寫toString()方法
@Override
public String toString() {
return "int型:" + String.valueOf(value);
}
}
這種包裝類是自己寫的
以後都不需要寫,因為SUN公司已經提供了8種包裝類
可以把8種基本資料類型 包裝成 引用資料類型。
基本資料類型--------包裝類型------------------父類
byte--------------------java.lang.Byte-----------Number
short-------------------java.lang.Short----------Number
int-----------------------java.lang.Integer-------Number
long--------------------java.lang.Long----------Number
float--------------------java.lang.Float----------Number
double-----------------java.lang.Double-------Number
boolean---------------java.lang.Boolean------Object
char--------------------java.lang.Character----Object
8種包裝類名也好記
int的包裝類是Integer
char的包裝類是Character
其他的都是首字母大寫變成類名
數字包裝類的父類是Number。
Boolean和Character的父類是Object。