1. 程式人生 > >Java基礎知識回顧之常用資料型別的包裝類

Java基礎知識回顧之常用資料型別的包裝類

Java基礎知識回顧之常用資料型別
Java基礎知識回顧之常用資料型別的包裝類

簡介

Java 雖然是一門面向物件的程式語言,但是其包括的8種基本資料型別並不支援面向物件的程式設計機制。也就說基本資料型別不具備“物件”的特性。例如:沒有屬性、沒有方法可以呼叫。

為了解決8個基本資料型別的變數不能當成 Object 型別變數使用的問題,在Java中引入了包裝類,通過包裝類,可以將8個基本資料型別分別定義為相應的引用型別。

基本資料型別 包裝類
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean

包裝類的分類

  • 物件型包裝類(Object 直接子類):Character,Boolean。
  • 數值型包裝類(Number 直接子類):Byte,Short,Integer,Float,Double,Long;

Number類

Number是一個抽象類,裡面一共定義了6個方法:intValue().doubleValue(),floatValue(),byteValue(),shortValue(),longValue().

基本資料類的裝箱與拆箱

  • 裝箱操作:將基本資料型別變為包裝類的形式
    • 包裝類中的構造方法都可以接收各自資料類的變數。
  • 拆箱操作:從包裝類之中取出被包裝的資料
    • 利用 Number 類中提供的方法完成(上面說到的 xxxValue)

程式碼示例

public class TestDemo
{ public static void main(String[] args) { /*** int型別 ***/ Integer obj = new Integer(10);// 將基本資料裝箱 int temp = obj.intValue();// 將基本資料型別拆箱 System.out.println("Num:" + temp*3); /*** Double型別 ***/ Double obj1 = new Double(10.3);// 將基本資料裝箱 double temp1 = obj1.doubleValue();// 將基本資料型別拆箱 System.out.println("Num:" + temp1 * 3); /*** Boolean型別 ***/ Boolean obj2 = new Boolean(true);// 將基本資料裝箱 boolean temp2 = obj2.booleanValue();// 將基本資料型別拆箱 System.out.println(temp2); } }

自動拆箱與裝箱

public class Demo {
	public static void main(String[] args) {
		Integer obj = 10;// 自動裝箱
		int temp = obj;// 自動拆箱
		obj++;
		System.out.println("Num:" + temp * obj);
	}
}

使用包裝類宣告的變數比較

通過下面的程式碼可以看到一點,就是使直接賦值的方式,產生的物件是相等的,但是使用 new 關鍵產生就不相等了。這點和 String 類的宣告一致。在物件作為比較的時候,最好使用 equals()

public class TestDemo {

	public static void main(String[] args) {

		Integer obja = 10;// 直接賦值
		Integer objb = 10;// 直接賦值
		Integer objc = new Integer(10);
		System.out.println(obja == objb);		// true
		System.out.println(obja == objc);		// false
		System.out.println(objb == objc);		// false
		// 判斷內容是否相同要用equals()
		System.out.println(obja.equals(objc));	// true
	}
}

使用 Object 類操作

public class TestDemo {

	public static void main(String[] args) {
		
		// Integer 操作
		Object obj = 10;
		int num = (Integer) obj;
		System.out.println("Num=" + num * 3);
		
		// Double 操作
		Object obj1 = 10.3;
		double num1 = (Double) obj1;
		System.out.println("Num=" + num1 * 3);

	}
}

資料型別轉換

就是使用包裝類的方法,對常用的資料型別進行轉換。下面列出一部分:

  • Integer 類: public static int parseInt(String s);
  • Double 類: public static double parseDouble(String s);
  • Boolean 類:public static boolean parseBoolean(String s);
public class TestDemo {

	public static void main(String[] args) {
		
		// int
		String intStr = "123";
		int numInt = Integer.parseInt(intStr);

		// double
		String doubleStr = "1.3";
		double numDouble = Double.parseDouble(doubleStr);

		// boolean
		String str = "true";
		boolean flag = Boolean.parseBoolean(str);
	}
}