1:枚举类型
以前我们定义常量都是用public final static String COLOR= "RED";
这样定义常量是有缺点的!
缺点1:类型写死 必须是String
2:如果静态常量需要添加或者删除等,客户端都可以重新编译!
现在终于有办法可以解决以上两个问题了,那就是用枚举!
怎么定义一个枚举呢:
public enum Color{
RED,BLUE,WHITE
public static void main(String[] args){
Color co = Color.RED;
System.out.println(co);
}
}
枚举主要有几个常用的方法:
ordinal() // 返回枚举常量的序数
toString();
values(); 等
其实生成枚举的时候也自动toString()方法;当然我们也可以重写这个方法,比如我们想输出颜色的代号,
public enum Color{
RED,BLUE,WHITE;
@override
public String toString(){
return String.valueOf(ordinal());
}
public static void main(String[] args){
for(COLOR co : COLOR.values()){
System.out.println(co);
}
}
}
定义一个枚举就跟类一样简单,枚举里面可以是有构造方法,但是构造方法不能是public,也就是不能直接被实例化,构造方法类似下面
public enum Color{
RED(1),BLUE(2),WHITE(3);
private int code;
Color(int cod){
this.code = code;
}
public int getCode(){
return code;
}
public static void main(String[] args){
System.out.println(Color.RRD.getCode());
}
}
以前我们定义常量都是用public final static String COLOR= "RED";
这样定义常量是有缺点的!
缺点1:类型写死 必须是String
2:如果静态常量需要添加或者删除等,客户端都可以重新编译!
现在终于有办法可以解决以上两个问题了,那就是用枚举!
怎么定义一个枚举呢:
public enum Color{
RED,BLUE,WHITE
public static void main(String[] args){
Color co = Color.RED;
System.out.println(co);
}
}
枚举主要有几个常用的方法:
ordinal() // 返回枚举常量的序数
toString();
values(); 等
其实生成枚举的时候也自动toString()方法;当然我们也可以重写这个方法,比如我们想输出颜色的代号,
public enum Color{
RED,BLUE,WHITE;
@override
public String toString(){
return String.valueOf(ordinal());
}
public static void main(String[] args){
for(COLOR co : COLOR.values()){
System.out.println(co);
}
}
}
定义一个枚举就跟类一样简单,枚举里面可以是有构造方法,但是构造方法不能是public,也就是不能直接被实例化,构造方法类似下面
public enum Color{
RED(1),BLUE(2),WHITE(3);
private int code;
Color(int cod){
this.code = code;
}
public int getCode(){
return code;
}
public static void main(String[] args){
System.out.println(Color.RRD.getCode());
}
}