2019-04-1217:56:20
* 枚举
可以替代常量
在已知个数的情况下可以使用枚举
定义枚举 关键字 enum 构造方法不能有public
对象不能随意创建
构造方法不能在外部使用 不能new
和一个正常类相比区别
1.不能在类的外部实例化 只能在类内部定义
2.定义的对象都是public static final的
3.没有用abstract修饰却可以添加抽象方法
4.构造方法默认私有 不能用 public protected 修饰
public enum Direction { //枚举的对象直接类的对象直接创建,不需要new //如果枚举类中定义了抽象方法,就需要将抽象方法实现 EAST("东"){ //// ---->相当创建一个对象----->"东"给string 赋值用 @Override public void b() { //重写b方法 } },SOUTH("南"){ @Override public void b() { } },WEST("西"){ @Override public void b() { } },NORTH("北"){ @Override public void b() { } }; private String a; //可以定义变量 Direction(String a) { //可以定义构造方法 this.a = a; } public void show(){ //可以写方法 System.out.println(a); } public abstract void b(); //定义抽象方法 }
public class Test { public static void main(String[] args) { System.out.println(Direction.EAST); Direction.WEST.show(); //判断两个枚举是否相同 Direction dir = Direction.EAST; System.out.println(dir == Direction.EAST);//判断枚举是否相同的方法 System.out.println(dir.compareTo(Direction.WEST)); //枚举下标做差 为0是相同 //---描述枚举 System.out.println(dir.ordinal()); //枚举下标 System.out.println(dir.name());//显示字符串 } public static void showDirection(Direction dir) { System.out.println(dir); } }