Java 包裝類
阿新 • • 發佈:2020-07-25
1. 8大基本型別
java是面向物件的語言,基本型別不是new出來的不能使用像object提供的方法,所以有了包裝類
package com.qf.demo02; import javax.swing.text.InternationalFormatter; public class Test6Integer { public static void main(String[] args) { //靜態的屬性: System.out.println("獲取最大值:"+Integer.MAX_VALUE); System.out.println("獲取最小值:"+Integer.MIN_VALUE); //byte的最大值和最小值 System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE); //1.建立包裝類的物件: int i = 100;//基本型別 // 建立一個包裝類的物件,包裝的是int型別的i Integer i2obj = new Integer(i);//將基本型別int,構建一個Integer物件 Integer i3obj = new Integer("200");//基於String型別,構建一個Integer物件 //2.類的物件有方法 //A:Integer類,重寫了Object中的toString()方法。不顯示地址,顯示數值本身。String型別 System.out.println(i2obj.toString());//"100" System.out.println(i3obj.toString());//"200" //B:將物件,轉為基本型別:6種類型 Number父類中提供的 byte b1 = i2obj.byteValue();//將i2obj這個物件,轉為byte型別的資料 short s1 = i2obj.shortValue(); int i2 =i2obj.intValue(); long l1 = i2obj.longValue(); float f1 = i2obj.floatValue(); double d1 = i2obj.doubleValue(); //C:通過靜態的方法parseXXX(),將一個String型別,解析為基本型別的資料 int i3 = Integer.parseInt("123");//猜:長的像數值才可以。"相容型別" byte b3 = Byte.parseByte("99"); float f3 = Float.parseFloat("1.23"); System.out.println(i3); System.out.println(b3); System.out.println(f3); //不是每個String都能轉成數值,不相容的不行 // int i4 = Integer.parseInt("memeda");//java.lang.NumberFormatException: For input string: "memeda" //D:通過valueOf(基本型別/String)-->獲取一個包裝類的物件型別 Integer i4obj = Integer.valueOf(100); Integer i5obj = Integer.valueOf("105");//猜:長的像數值才可以。"相容型別" System.out.println(i5obj);//? } }
package com.qf.demo02; public class Test7Character { public static void main(String[] args) { System.out.println("最大值:"+(int)Character.MAX_VALUE);//65535 System.out.println("最小值:"+(int)Character.MIN_VALUE);//0 //構建一個包裝類的物件 Character c1 = new Character('a');//物件 char c2 = '*';//基本型別 //判斷給定的字元,是否是數字:0-9 System.out.println(Character.isDigit(c2));//boolean //判斷給定的字元,是否是字母[a-zA-Z] System.out.println(Character.isLetter(c2));//boolean //判斷是否是小寫字母 System.out.println(Character.isLowerCase('A'));//false //判斷是否是大寫字母 System.out.println(Character.isUpperCase('A'));//true //將大寫字母,轉為小寫字母 System.out.println(Character.toLowerCase('A')); //將小寫字母,轉為大寫字母 System.out.println(Character.toUpperCase('*')); } }
2. 裝箱和拆箱
package com.qf.demo02; import java.util.Arrays; public class Test8Auto { public static void main(String[] args) { int i = 10; Integer i2obj = new Integer(i); Integer i3obj = Integer.valueOf(i); //jdk1.5之後,自動裝箱和拆箱 Integer i4obj = 10;//自動裝箱,將基本型別,直接賦值給包裝類的物件。 int j = i4obj;//自動拆箱,將包裝類的物件的值,直接賦值給一個基本資料型別。 //陣列,儲存8個基本型別的資料。? //資料型別統一: byte b1 = 10; short s1 = 20; int i1 = 30; long l1 = 40L; float f1 = 1.23f; double d1 = 2.34; char c1 = 'a'; boolean bb1 = true; Object[] arr = new Object[8];//?儲存神馬的資料 System.out.println(Arrays.toString(arr)); arr[0] = b1;//byte-->Byte(自動裝箱)-->Object類(向上轉型) arr[1] = s1;//short-->Short(自動裝箱)-->Object類(向上轉型) arr[2] = i1;//int --> Integer --> Object arr[3] = f1; arr[4] = d1; arr[5] = c1; arr[6] = bb1; arr[7] = l1; for(Object obj:arr){ System.out.println(obj.toString()); } System.out.println("-----------"); int i2 = (int)arr[2];//Object-->Integer -->int System.out.println(i2); int i3 = (Integer) arr[2];//Object -->Integer System.out.println(i3); } }
package com.qf.demo02; public class Test9 { public static void main(String[] args) { //Number:Byte,Short,Integer,Long,Float,Double //快取資料:256個物件,來包裝對應的數值 /* * [-128,127] * 包裝類的物件:-128,127,包裝類中已經建立好了現成的,用就完了 */ Integer i1 = 100; Integer i2 = 100; System.out.println(i1 == i2);//地址,true Integer i3 = 200; Integer i4 = 200; System.out.println(i3 == i4);//false } }