04
2018
12

JAVA学习-Java高级特性之自动装箱和拆箱、枚举类型

Java高级特性之自动装箱和拆箱

有时需要将int这样的基本类型转换为引用类型对象

基本数据(Primitive)类型的自动装箱、拆箱是J2SE 5.0提供的新功能,为打包基本数据类型提供了方便,但提供方便的同时隐藏了细节,建议在能够区分基本数据类型与引用类型的差别时再使用

基本类型int、boolean、byte、short、char、long、float、double对应的包装引用类型分别是Integer、Boolean、Byte、Short、Character、Long、Float、Double

Java高级特性之枚举类型

枚举类定义语法:public enum Color{RED,BLUE,BLACK}

枚举值都是public static final类型的,也就是常量,因此枚举类中的枚举值应全部大写

枚举类型是class,在枚举类型中有构造器,方法和字段,但枚举的构造器有很大的不同:

构造器只是在构造枚举值的时候被调用

构造器私有,不允许有public构造器

枚举可以在switch语句中使用

枚举是一个类,只是默认继承自java.lang.Enum<E>


demo:

public class AutoBoxDemo
{
public static void main(String[]args)
{
int i=10;
double d=12.5;
Integer num1=i;//自动装箱
Double num2=d;//自动装箱
System.out.println(num1);
System.out.println(num2);
int j=num1+5;//自动拆箱
double d2=num2+5.0;//自动拆箱
System.out.println(j);
System.out.println(d2);
Object o=i;
Integer b=(Integer)o;
System.out.println(b);
System.out.println("____________________");
enumTest();
}
//枚举测试
public static void enumTest()
{
System.out.println(Color.BLUE);
Color [] colors=Color.values();
for(Color c:colors){
System.out.print(c);
System.out.print("  ");
}
System.out.println();
Person [] persons=Person.values();
for(Person p:persons){
System.out.print(p);
System.out.print("  ");
}
System.out.println();
Person p =Person.P2;
switch(p)
{
case P1:
System.out.println("p1:"+p);
break;
case P2:
System.out.println("p2:"+p);
break;
case P3:
System.out.println("p3:"+p);
break;
}
}
}
//当JVM去加载使用枚举类时,会预先创建多个枚举类型的对象
//每个值构造一次,类似 public static final Color RED=new Color();
enum Color{
RED,BLUE,YELLOW;//枚举类型值必须作为第一条语句出现
private Color(){//构造方法只能私有,有多少个枚举值,构造多少次
System.out.println("Color()");
}
}
//枚举类可以扩展自己的属性、可以重写toString()方法等等,这些用法与普通类一样
enum Person{
P1("张三",13),P2("李四",20),P3("王五",18);
private String name;
private int age;
private Person(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return name+","+age;
}
}

效果:



版权声明:
作者:真爱无限 出处:http://www.pukuimin.top 本文为博主原创文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接.
« 上一篇下一篇 »

相关文章:

评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。