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)就行了...
这会带来便利但是不要滥用呵呵...