Java枚举enum

Java枚举一般用于有固定范围的变量,例如一周只有七个变量,星期一到星期日,星期八是不存在的。

把相关的常量分组到一个枚举类型里,可以使我们的代码可读性更强,而且枚举提供了比常量更多的方法。

用法1:

public enum Direction {

      East, West, South, North

}

标识符East,South称为枚举常量。枚举常量隐式声明为Direction的公共静态最终成员。

创建该枚举类型的变量不需要像创建对象那样new,而赋值也只能从枚举的值中取值。

Direction dir = Direction.East;

枚举比较用例:

enum Direction {
  East, South, West, North
}

public class Main {
  public static void main(String args[]) {
    Direction dir = Direction.South;

    System.out.println("Value of dir: " + dir);

    dir = Direction.South;

    if (dir == Direction.South){
      System.out.println("枚举相等.\n");
    }
  }
}

用法2:

枚举值也可以用于控制switch语句。

enum Direction {
  East, South, West, North
}

public class Main {
  public static void main(String args[]) {
    Direction dir = Direction.South;
    switch (dir) {
    case South:
      System.out.println("south");
      break;
    case East:
      System.out.println("East");
      break;
    case West:
      System.out.println("West");
      break;
    case North:
      System.out.println("North.");
      break;
    }
  }
}

3.枚举中values和valueOf方法

values()方法用于获得枚举全部值,valueOf(str)传入枚举的str值获得枚举类型的值

enum Direction {
  East, South, West, North
}

public class Main {
  public static void main(String args[]) {
    Direction all[] = Direction.values();
    for (Direction a : all){
      System.out.println(a);
    }
    System.out.println();

    Direction dir = Direction.valueOf("South");
    System.out.println(dir);
  }
}

4.枚举定义方法


public enum Color {  
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getIndex() {  
        return index;  
    }  
    public void setIndex(int index) {  
        this.index = index;  
    }  
}

类似于class,枚举中科院定义成员变量还有构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值