枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。举个例子,颜色也可以定义成枚举类型,它可以包含你定义的任何颜色,当需要的时候,只需要通过枚举调用即可,另外比如说季节(春夏秋冬)、星期(星期一到星期日)等等这些具有共同投特征的数据都可以定义枚举。
下面是最简单的枚举的定义:
public enum A {
DOG,BAT,CAT,LEFT;
}
枚举的实现:
获取某一个对象:
public class Test {
public static void main(String[] args) {
A a=A.BAT;
System.out.println(a);
}
}
打印出BAT
带有构造方法的枚举
public enum A {
DOG("dog"),BAT("bat"),CAT("cat");
private A(String name) {
System.out.println("我是"+name);
}
}
public class Test {
public static void main(String[] args) {
A a=A.BAT;
// A b=A.CAT;
// A c=A.DOG;
}
}
不论有没有实例化b和c,在实例化a时候已经预先把b和c实例化好了
枚举能够实现接口
interface C{
public void getName();
}
public enum Animal implements C{
DOG("dog"){
@Override
public void getName() {
// TODO Auto-generated method stub
super.getName();
}
}
,CAT("cat"),BIDR("bidr"),PANDA("panda");
private Animal(String type) {
System.out.println("我是"+type+"动物");
}
@Override
public void getName() {
// TODO Auto-generated method stub
}
}
实现接口可以放在外面和放在里面
public class Main {
public static void main(String[] args) {
Animal a=Animal.DOG;
Animal b=Animal.CAT;
a.getName();
}
}
实现方法
枚举实现抽象方法
public enum EnumColor{
RED{
public String getColorName() {
return "红色";
}
},
GREEN{
public String getColorName() {
return "绿色";
}
},
BLUE{
public String getColorName() {
return "蓝色";
}
};
public abstract String getColorName();
}