自动装拆箱
--基本数据类型都有与之对应的包装类(引用数据类型)
byte—Byte
short—Short
int—Integer
long---Long
float---Float
double---Double
boolean---Boolean
char---Character
1 自动装箱:就是从基本类型自动转换成与之对应的包装类
2 自动拆箱:就是从包装类型自动转换成与之对应的基本类型
示例代码:
public class AutoBoxingDemo {
public static void main(String[] args) {
long number = 1;
Long number2 = 10l;//自动装箱
long res = number2 + 10;//自动拆箱,包装类型参与数学运算的话先转换成基本类型
show(number);
}
public static void show(Object obj) {
System.out.println(obj);
}
}
枚举
*什么是枚举?
--就是在类被加载的时候预先自动创建多个对象供外部其它对象来选择使用.
--枚举类的构造函数都是私有的,目的对象由其内部自动创建,外面不能调用其构造函数创建对象.
--枚举对象的类型都是public static final
--values() 得到所有的枚举类型对象
--valueof(”对象名”) 根据对象名得到枚举对象
--ordinal()得到枚举对象在整个枚举数组中的下标
--枚举类型可以使用switch进行比对,因为它是常量
示例代码:
/*枚举类
*
* Color认为就是一个类
* public static final Color RED = new Color();
* public static final Color BLUE = new Color();
* public static final Color GREEN = new Color();
* public static final Color YELLOW = new Color();
*
* */
public enum Color {
RED, BLUE, GREEN, YELLOW;
private Color(){
System.out.println("test");
}
}
public enum OrderState {
PRODUCTIONING(){
@Override
public String getName() {
return "正在配货";
}
},
WAITPAYMENT(){
@Override
public String getName() {
return "等待支付";
}
},WAITDELIVER(){
@Override
public String getName() {
return "等待发货";
}
},DELIVERED(){
@Override
public String getName() {
return "已发货";
}
},RECEIVED(){
@Override
public String getName() {
return "已收货";
}
};
public abstract String getName();
}
/**
* public static final Person P1 = new Person("张三",10);
* public static final Person P2 = new Person("李四",30);
* public static final Person P3 = new Person("王五,100);
* public static final Person P4 = new Person("赵柳",20);
*
*/
public enum Person {
P1("张三",10),P2("李四",30),P3("王五",100),P4("赵柳",20);
private String name;
private int age;
private Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}