• java之枚举和注解


    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();
    }
  • 相关阅读:
    win10+CUDA8.0+vs2013配置
    TX2更新源失败的问题
    并发编程--乐观锁与悲观锁
    并发编程--线程池
    并发编程--多线程基础(02)
    并发编程--多线程基础(01)
    搭建redis集群的过程中遇到的问题
    redis集群搭建(伪集群)
    关于maven项目中修改的JS不生效的解决方案
    【转载】IntelliJ IDEA 2017常用快捷键
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12063548.html
Copyright © 2020-2023  润新知