Java学习第七课...枚举.自动装箱.静态导入...-asp.net关注

枚举使用enum这个关键字:

enum Transport {CAR,TRUCK,AIRPLANE,TRAIN,BOAT}

虽然是对象,但是不能使用new...

声明一个枚举类型的变量:

Transport tp;

只能赋予它枚举值:

tp=Transport.AIRPLANE;

枚举可以用于switch...==比较...

还可以用于输出...

System.out.println(Transport.BOAT);

值得注意的是,每一个枚举常量都是枚举类型的对象...

所以可以添加构造函数,方法等等...

下面扩展前面的例子:

enum Transport {CAR(65),TRUCK(55),AIRPLANE(600),TRAIN(70),BOAT(22);//初始化了各种值

private int speed;

Transport(int s){speed=s;}//构造函数

int getSpeed(){return speed;}//添加了方法

}

枚举不能继承别的类,同时也不能作为超类...

但是所有枚举都继承自Enum这个类:java.lang.Enum...

下面解释两个方法:

final int ordinal()

返回调用常量的顺序,上例中,CAR是0,TRUCK是1,依次类推...

final int compareTo(enum-type e)

如果调用常量的顺序值小于e常量的顺序值,返回负数;如果相等,返回0,如果大于,返回正数...

自动装箱和自动拆箱是两个很重要的概念...

把值封装在对象中的过程是装箱boxing...

从类型包装器解封值的过程是拆箱unboxing...

Integer iOb=100;//自动装箱

int i=iOb;//自动拆箱

其实,C#不仅引入了这个概念,而且做的更好...

最简单的值类型,背后都是一个类类型对应,不仅仅有方法,还不影响性能...decimal除外...

静态导入:

import后面跟上关键词static...

这样可以减少代码量...

比如要使用Math.sqrt()...

如果之前包含

improt static java.Math.sqrt;

这一句的话,直接使用sqrt(100)就行了...

这会带来便利但是不要滥用呵呵...

posted @ 2011-02-10 13:05  程承JAVA  阅读(161)  评论(0编辑  收藏  举报