包装类
什么是包装类: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();
}
}