認識包裝類
Object 類最大的特點是所有類的父類,並且可以接受所有數據類型,但是在這個過程中就存在有個問題: 基本數據類型並不是一個類,所以要將基本數據類型以類的方式進行使用,就需要對基本數據類型進行包裝。
class Int {
private int data ;
public Int(int data) {
this.data = data ;
}
public int intValue() {
return this.data ;
}
}
public class JavaDemo {
public static void main(String args[]) {
Object obj = new Int(10) ; //裝箱:將基本數據類型保存在包裝類之中
int X = ((Int)obj).intValue() ; //拆箱:從包裝類對象中獲取基本數據類型
System.out.println(X * 2);
}
}
Object類爲父類,其直接子類包含 Number 抽象類, Boolean 類與 Character類
Number 類中的方法就是直接提供有獲取包裝類中基本數據類型的功能,一共只提供有 6 中類。
Number 抽象類
裝箱與拆箱
-
數據裝箱:將基本數據類型保存到包裝類之中,一般利用構造方法完成
|- Integer類 : public Integer(int value);
|- Double類 : public Double(double value);
|- Boolean類 : public Boolean(boolean value); -
數據拆箱:從包裝類中獲取基本數據類型
|- 數值型包裝類已經由 Number 類定義了拆箱的方法;
|- Boolean型:public boolean booleanValue();
範例:
public calss JavaDemo {
public static void main(String agrs[]){
Double obj = new Double(10.5); //裝箱
double num = obj.doubleValue(); //拆箱
Systemt.out.println(num * num);
}
}
public calss JavaDemo {
public static void main(String agrs[]){
Integer obj = new Integer(10); //裝箱
int num = obj.intValue(); //拆箱
Systemt.out.println(num * num);
}
}
public calss JavaDemo {
public static void main(String agrs[]){
Boolean obj = new Boolean(true); //裝箱
boolean num = obj.booleanValue(); //拆箱
Systemt.out.println(num);
}
}
JDK1.9之後,對所有包裝類之中提供的構造方法就變爲了過期處理,這是因爲JDK1.5之後提供了自動裝箱與拆箱操作
public calss JavaDemo {
public static void main(String agrs[]){
Integer obj = 10; //裝箱
int num = obj; //拆箱
obj ++ ;
Systemt.out.println(num * obj);
}
}
public calss JavaDemo {
public static void main(String agrs[]){
Object obj = 19.3; //double自動裝箱爲Double,向上轉型爲Object
double num = obj; //Objct 向下轉型爲Double包裝類,包裝類自動拆箱爲基本數據類型double
Systemt.out.println(num * 2);
}
}
相等判斷(包裝類)
public calss JavaDemo {
public static void main(String agrs[]){
Integer x = 99;
Integer y = 99;
System.out.println(x == y); // true
Integer x = 128;
Integer y = 128;
System.out.println(x == y); // false
System.out.println(x.equals(y)); //true;
}
}
以後進行包裝類的相等判斷一定要使用equals() 完成,而包裝類本身也需要考慮佔位的長度,如果超過了一位的內容就需要用equals()判斷,負責用 ‘==’ 判斷.