1.包裝類
概念:基本資料型別(int,double,char,boolean…),使用起來很方便,可以直接使用但是沒有相關方法可以操作這些基本資料型別的值。故而我們可以使用一個類,把這些基本資料型別的值包裝起來進行操作。
/**
包裝類:
基本資料型別的值(int,double,char,boolean...),使用起來很方便,可以直接使用
但是沒有相關的方法,可以操作這些基本資料型別的值
所以我們可以使用一個類,把這些基本資料型別的值包裝起來
在類中定義一些方法,用于操作這些基本資料型別的值
這個類就叫做包裝類
基本資料型別:4類8種
byte short int long float double char boolean
基本型別對應的包裝類: java.lang包
Byte Short Integer Long Float Double Character Boolean
java.lang.Integer類
Integer 類在物件中包裝了一個基本型別 int 的值。
*/
public class Demo01Integer {
public static void main(String[] args) {
/**
裝箱:把基本型別的值包裝到包裝類中 int--->Integer
包裝類的構造方法:
Integer(int value) 傳遞整數
Integer(String s) 傳遞一個字串型別的整數
包裝類的靜態方法:
static Integer valueOf(int i) 傳遞整數
static Integer valueOf(String s) 傳遞一個字串型別的整數
注意:
兩個傳遞字串的方法,必須傳遞整數型別的字串,否則會拋出例外
*/
Integer in1 = new Integer(10);
System.out.println(in1);//10 重寫了toString方法
Integer in2 = new Integer("10");
System.out.println(in2);//10 重寫了toString方法
Integer in3 = Integer.valueOf(10);
System.out.println(in3);//10
Integer in4 = Integer.valueOf("10");
System.out.println(in4);//10
//Integer in5 = Integer.valueOf("a");//NumberFormatException(數字格式化例外): For input string: "a"
//System.out.println(in5);
Double d1 = Double.valueOf(5.5);
System.out.println(d1);//5.5
/**
拆箱:在包裝類中取出基本型別的值 Integer-->int
Integer類中的方法:
int intValue() 以 int 型別回傳該 Integer 的值。
*/
int a = in1.intValue();
System.out.println(a);//10
}
}
自動裝箱,自動拆箱
/**
自動裝箱,自動拆箱:在JDK1.5以后,裝箱和拆箱可以自動進行(基本型別的值和包裝類的值可以自動相互轉換)
裝箱:基本型別-->包裝類
拆箱:包裝類-->基本型別
*/
public class Demo02Integer {
public static void main(String[] args) {
/**
自動裝箱:
Integer in = 10;
隱含了一個創建物件的程序
Integer in = new Integer(10);
*/
Integer in = 10;
/**
自動拆箱:
in是包裝類,無法直接參與計算
in默認會呼叫intValue方法,把包裝類轉換為基本型別的整數在和1相加
in.intValue()+1=11==>結果是一個基本型別的整數,又賦值給in這個包裝類(自動裝箱)
*/
in = in+1;
System.out.println("-----------------------------");
ArrayList<Integer> list = new ArrayList<>();
list.add(1);//自動裝箱 相當于 list.add(new Intger(1));
//int a = list.get(0).intValue();
int a = list.get(0);//自動拆箱 get方法獲取的元素是Integer型別,默認呼叫了intValue方法轉換為了int型別的值
}
}
3.基本資料型別和字串之間的轉換
/**
基本型別與字串之間的轉換
1.基本資料型別-->字串
a.基本資料型別的值+"":作業中最常用 1+""==>"1"
b.使用包裝類中的靜態方法toString:
static String toString(int i)回傳一個表示指定整數的 String 物件。
c.使用String類中的靜態方法valueOf:
static String valueOf(int i) 回傳 int 引數的字串表示形式。
2.字串-->基本資料型別
在每個包裝類中都有一個parseXXX方法,可以把字串格式的基本型別的資料,轉換為基本型別的數
Integer類: static int parseInt(String s)
Double類: static double parseDouble(String s)
...
注意:
字串必須傳遞基本型別的字串,否則會拋出數字格式化例外
*/
public class Demo03Integer {
public static void main(String[] args) {
//1.基本資料型別-->字串
//a.基本資料型別的值+"":作業中最常用 1+""==>"1"
String s1 = 1+"";
System.out.println(s1+10);//110
//b.使用包裝類中的靜態方法toString:
String s2 = Integer.toString(10);
System.out.println(s2+10);//1010
//c.使用String類中的靜態方法valueOf:
String s3 = String.valueOf(100);
System.out.println(s3+10);//10010
//2.字串-->基本資料型別
int a = Integer.parseInt("100");
System.out.println(a+100);//200
double d = Double.parseDouble("1.1");
System.out.println(d+2.2);//3.3000000000000003
//int abc = Integer.parseInt("abc");//NumberFormatException: For input string: "abc"
//System.out.println(abc);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281089.html
標籤:Java相關
