Java基礎知識回顧之常用資料型別的包裝類
阿新 • • 發佈:2018-12-08
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);
}
}