Java类常量、接口常量、枚举类

在枚举类之前,定义常量可以在类中定义,也可以在接口中定义。

类常量

在类中定义一组常量:

public class SeasonConst {
    public static final int SPRING = 1;
    public static final int SUMMER = 2;
    public static final int AUTUMN = 3;
    public static final int WINTER = 4;
}

接口常量

在接口中,属性都是以public static final修饰。
在接口中定义一组常量:

public interface SeasonConst {
    int SPRING = 1;
    int SUMMER = 2;
    int AUTUMN = 3;
    int WINTER = 4;
}
//在接口中,属性都是以public static final修饰

从类常量与接口常量定义上来看,显然接口常量更加简洁;
此外接口中还可以再定义接口,使得有同一类型关系的常量划分为一组。

public interface Const {
    interface Season {
        int SPRING = 1;
        int SUMMER = 2;
        int AUTUMN = 3;
        int WINTER = 4;
    }
    interface Week {
        int MONDAY = 1;
        int SUNDAY = 7;
    }
}
//可以直接调用Const.Season.SPRING获得值

接口常量在定义与使用十分方便,但不适用于在有实现类的时候这样使用,
如果有定义的实现类,那么也就是实现了这个接口的所有常量,无论是否在实现类中使用到,都是违背Java的封装性的。

枚举类

在JDK1.5之前没有枚举类,那之前一般使用接口常量代替;而现在Java枚举类可以更贴近地表示常量。

public enum Season {
    SPRING,
    SUMMER,
    AUTUNM,
    WINTER;
}

枚举类中的枚举成员都可以看作是这个enum枚举类的实例,这些枚举类默认都被public static final修饰;成员之间用逗号分隔,分号语句结束。
枚举类的调用通过枚举类型名直接引用,如Season.SPRING

Season season = Season.SPRING;

自定义枚举类型

按照数字1代表SPRING,2代表SUMMER,3代表AUTUMN,4代表WINTER。

public enum Season {
    SPRING(1),
    SUMMER(2),
    AUTUMN(3),
    WINTER(4);

    private int i;
    private Season(int i) {
        this.i = i;
    }
}
//自定义枚举类型时,必须先定义枚举实例
//枚举类构造方法是私有的,结构对应枚举实例

枚举类提供的方法

values(),以数组形式返回枚举类的所有成员。
valueOf(),将普通字符串转换为枚举实例。
compareTo(),比较两个枚举成员在定义时的顺序。
ordinal(),获取枚举成员的索引位置。

Season[] seasons = Season.values();
Season season = Season.valueOf("SPRING");

推荐文章

AI最佳实践全栈式从0到1开发个人博客系统


创作不易,只需小手一动我就能开心收获(●゜ⅴ゜)ノ:

|点赞 ❤️|收藏 🌟|评论 💬|

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我喺小VIE

努力创作,值得肯定●゜ⅴ゜)ノ

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值