JDK1.5新增的enum关键字用于定义枚举类。

枚举类和普通类的区别

  • 使用enum定义的枚举类默认继承了java.lang.Enum类;
  • 枚举类的构造器只能使用private修饰符;
  • 枚举类的所有实例必须在枚举类中显示列出(分隔;结尾)。列出的实例系统会自动添加public static final修饰;
  • 所有的枚举类都提供了一个values方法,该方法可以很方便地遍历所有的枚举值;

JDK1.5中可以在switch表达式中使用枚举类的对象作为表达式,case子句可以直接使用枚举值的名字,无需添加枚举类作为限定。

若枚举只有一个成员,则可以作为一种单例模式的实现方式。

package anno;

public class Test {
public static void main(String[] args) {
//这里获取一个Season对象
Season spring = Season.SPRING;
spring.showInfo();
Season summer = Season.SUMMER;
summer.showInfo();
Season autumn = Season.AUTUMN;
autumn.showInfo();
Season winter = Season.WINTER;
winter.showInfo(); spring.test(); //每次执行Season.SPRING获得的都是一个相同的对象,是一种单例模式
Season spring1 = Season.SPRING;
System.out.println(spring==spring1);
}
}
enum Season implements Tmp{
//这里相当于调用有参的私有构造方法
SPRING("春天","春暖花开"),
SUMMER("夏天","炎炎夏日"),
AUTUMN("秋天","秋高气爽"),
WINTER("冬天","寒风凌冽");
private final String NAME;
private final String DESC;
private Season(String NAME, String DESC) {
this.NAME = NAME;
this.DESC = DESC;
}
public void showInfo() {
System.out.println(this.NAME+":"+this.DESC);
}
@Override
public void test() {
// TODO Auto-generated method stub
System.out.println("这是实现Tmp的方法");
}
}
interface Tmp{
void test();
}

java之枚举和注解的更多相关文章

  1. Java复习——枚举与注解

    枚举 枚举就是让某些变量的取值只能是若干固定值中的一个,否则编译器就会报错,枚举可以让编译器在编译阶段就控制程序的值,这一点是普通变量无法实现的.枚举是作为一种特殊的类存在的,使用的是enum关键字修 ...

  2. [改善Java代码]枚举和注解结合使用威力更大

    注解的写法和接口很类似,都采用了关键字interface,而且都不能有实现代码,常量定义默认都是pulbic static final类型的. 他们的主要不同点是:注解在interface前加上@字符 ...

  3. 跟着刚哥梳理java知识点——枚举和注解(十四)

    enum Season{ SPRING("spring","春暖花开"), SUMMER("summer","夏日炎炎" ...

  4. Java SE 枚举,注解,增强for循环

    Java SE 进阶 1.Enum 枚举对象名通常使用全部大写,常量的命名规范 构造器私有化 本类内部创建一组对象 对外暴露对象(通过为对象添加 public final static 修饰符) 可以 ...

  5. Effective java -- 5 枚举和注解

    第三十条:用enum代替int常量enum的简单用法. enum Operation { PLUS("+") { double apply(double x, double y) ...

  6. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  7. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  8. [Effective Java]第六章 枚举和注解

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. Java笔记---枚举类和注解

    Java笔记---枚举类和注解 一.枚举类 自定义枚举类 方式一:JDK5.0之前自定义枚举类 class Seasons { //1. 声明Seasons对象的属性 private final St ...

随机推荐

  1. Java之Retry重试机制详解

    应用中需要实现一个功能: 需要将数据上传到远程存储服务,同时在返回处理成功情况下做其他操作.这个功能不复杂,分为两个步骤:第一步调用远程的Rest服务上传数据后对返回的结果进行处理:第二步拿到第一步结 ...

  2. 英语口语考试资料College life

    College life Early in senior high school, we longed to be enrolled in a university. Now the dream ha ...

  3. VMware安装虚拟机及网络配置

    首先VMware版本15.1,linux:CentOS7 64位(ISO镜像),准备好这两个就可以开始安装我们的虚拟机了. VMware的安装就不赘述了,这里主要说下怎么在VMware上面安装linu ...

  4. jquery列表操作

    <span> <button>全选</button> <button>不选</button> <button>反选</bu ...

  5. 搞IT产品,请谨记Mobile First

    我们在哪儿? 作为一名企业IT的老鸟,发现一个比较有意思的事情,就是我们的企业IT产品,仍然投入大量的精力,在基于PC的WEB端的设计和交付上,而在APP上的,移动端的考虑,一直都是在PC搞完之后,再 ...

  6. 线性规划VB求解

    线性规划VB求解 Rem 定义动态数组 Dim a() As Single, c() As Single, b() As Single, cb() As Single Dim aa() As Sing ...

  7. C++与数据结构课程设计---定票咨询系统

    订票咨询管理系统 设计编制一个订票管理系统,考虑旅客不同的要求.例如,选择不同的交通工具,希望在旅途中的时间尽可能地短,期望旅费尽可能省,或要求中转次数最少等.为旅客提供两种或三种最优决策.车票基本信 ...

  8. F#周报2019年第50期

    新闻 Azure Functions 3.0系统上线 GC性能架构--第1部分 ConfigureAwait问题解答 介绍System.Threading.Channels Windows Serve ...

  9. WebAPI接口的自动化测试1

    自动化测试要满足四个条件: 1 - 自动化用例能够完成所有测试步骤   -------- postman不支持  没有完整的用例管理系统 2 - 每个用例的输入数据,必须要自动填入  -------- ...

  10. 贝壳2020——Java校招笔试题

    算法题4道: 题目描述: 给出n个正整数,要求找出相邻两个数字中差的绝对值最小的一对数字,如果有差的绝对值相同的,则输出最前面的一对数.(2<n<=100,正整数都在10^16范围内) 输 ...