包裝類的概念與使用

認識包裝類

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()判斷,負責用 ‘==’ 判斷.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章