OCJP(310-065)精选笔记之-枚举(Enum)

枚举要点如下:

  • 枚举限制一个变量只能赋予预先定义的一些值
  • 枚举常量要大学,非强制但是符合代码规范
  • 枚举可以声明为单独的类(outside a class),或者为类的一个成员(in class)。但是不能在一个方法中声明枚举。
  • 枚举声明结束是否用分号是可选的
  • 每个枚举都要一个静态(static)方法——values()。这个方法返回枚举值的数组(按值被声明的顺序)
  • 枚举是一种特殊的类,所以可以添加进构造体,方法还有变量。看下面的例子,每个CoffeeSize类型实际上都是Coffieeize类的一个实例
enum CoffeeSize {
    // 8, 10 & 16 传递给构造函数
    BIG(8), HUGE(10), OVERWHELMING(16);
    CoffeeSize(int ounces) { // 构造体
        this.ounces = ounces;
    }
    private int ounces; // 实例变量
    public int getOunces() {
        return ounces;
    }
}
枚举的构造体
  • 永远不要直接调用枚举的构造体。枚举的构造体是自动调用的,输入参数就是你在定义枚举时提供的
  • 你可以定义一个或多个输入参数给构造体,也可以重载枚举构造体,就像重载普通类的构造体一样
  • 看下面的例子来说在枚举内加入方法是如何做到的。你可以在CoffeSize内定义getLidCode()方法并且返回“B”,然后在枚举常量中覆盖这个方法并且返回“A”
enum CoffeeSize {
    BIG(8),
    HUGE(10),
    OVERWHELMING(16) { // 开始给这个枚举常量定义一个“body”
        public String getLidCode() { // 覆盖CoffeSize中定义的方法
            return "A";
        }
    }; // 如果后面还有代码,这个分号还是需要的

    CoffeeSize(int ounces) {
        this.ounces = ounces;
    }

    private int ounces;

    public int getOunces() {
        return ounces;
    }
    public String getLidCode() { // 被枚举常量OVERWHELMING覆盖了
        return "B";
    }
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值