包裝類
什麼是包裝類:java給每一個基本類型提供了一個包裝類,用來包裝基本類型的值,提供面向對象的操作方法
哪些包裝類
- byte Byte
- short Short
- int Integer
- long Long
- float Float
- double Double
- char Character
- boolean Boolean
常用方法:
Integer:
將int包裝成Integer:裝箱
- new Integer(5);
- new Integer(“5”);
- Integer.valueOf(5)
將Integer轉換成int:拆箱
- intValue
將字符串轉換成int
Integer.parseInt(“5”) //只能接受整數格式的字符串
自動裝箱
Integer a = 5;//直接將基本類型值賦值給包裝類型
自動拆箱
int b = a;//直接將包裝類型對象賦值給基本類型
import java.util.Scanner;
import org.junit.Test;
public class TestWrapper {
@Test
public void test(){
//接受用戶輸入的一個整數字符串,將它轉換成int
Scanner input = new Scanner(System.in);
String s = input.nextLine();
int a = Integer.parseInt(s);//只能接受整數格式的字符串
System.out.println(a+5);
}
//接受用戶輸入一個小數,將它轉換成double類型
@Test
public void test2(){
//接受用戶輸入的一個整數字符串,將它轉換成int
Scanner input = new Scanner(System.in);
String s = input.nextLine();//2.5
double d = Double.parseDouble(s);
System.out.println(d+5);
Double d1 = Double.valueOf(s);
int a = d1.intValue();
System.out.println(d1);
System.out.println(a);
}
@Test
public void test3(){
Integer a = new Integer(5);
a = new Integer("5");
a = Integer.valueOf(5);
a = Integer.valueOf("5");
//以上都是裝箱,手動裝箱
a = 5;//基本類型直接賦值給引用類型,自動裝箱,自動裝箱對jdk要求是1.5之後
int b = a.intValue();//拆箱,將包裝類型的對象中的值取出來,賦值給基本類型,手動
b = a;//自動拆箱
}
}
枚舉
什麼是枚舉:枚舉就是一個特殊的類,特殊在普通類的實例可以被用戶任意創建,但枚舉的實例是隻有有限個,用戶不可以任意創建,這些實例是在枚舉中定義好的
如何定義枚舉
關鍵字:enum
構造方法
枚舉的超類是Enum
public enum Season {
SPRING("ab"),SUMMER,AUTOMN,WINTER;//枚舉常量(和靜態常量相似區別)
private String name;
private Season() {
// TODO Auto-generated constructor stub
}
private Season(String name) {
this.name =name;
}
public void setName(String name) {
this.name = name;
}
// public String getName() {
// return name;
// }
public void printinfo(){
System.out.println("枚舉也是類,一樣也應該方法");
}
}
class Animal{
public static final String TYPE="abc";//靜態常量
}
class Test{
public static void main(String[] args) {
String s = Animal.TYPE;
}
}
import org.junit.Test;
public class TestSeason {
@Test
public void test(){
//獲得枚舉實例
Season summer = Season.SUMMER;
summer = Enum.valueOf(Season.class, "SUMMER");
System.out.println(summer.name());
summer.printinfo();
}
}