zoukankan      html  css  js  c++  java
  • 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();
    }
  • 相关阅读:
    MySQL max_allowed_packet设置及问题
    centos 7 编译安装mysql 详细过程
    如何快速查看mysql数据文件存放路径?
    centos yum 库更新
    centos 7 ifconfig 命令找不到
    http协议
    前端那些事儿
    C++接口的定义与实现的详细过程
    List转为字符串
    spring cloud spring boot JPA 克隆对象修改属性后 无法正常的执行save方法进行保存或者更新
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12063548.html
Copyright © 2011-2022 走看看