zoukankan      html  css  js  c++  java
  • java笔记12-枚举

    枚举可以看成一个特殊的类,但是只能实例化出特定值的对象。

    1、枚举类型都隐式继承了java.lang.Enum类,因此不能继承其他类,但可以实现接口;

    2、枚举类型只能有私有的构造方法(java运行时创建,外部不能进行实例化);

    3、不能泛型化;

    4、当有字段和方法时,枚举常量的列表必须以分号结尾;

    5、编译器在创建枚举时会自动添加一些特殊方法。例如,它们具有一个静态values方法。

     

    enum Day{
        //枚举只能创建下面的对象,必须要写在第一行,使用方式:Day day =Day.monday;
        monday("星期一",1),tuesday,wednesday,thursday,friday,saturday,sunday;//因为有方法,这个地方要用分号结尾
        private String name;
        private int index;
        //如果对象写成monday这种形式 则必须有带参数的构造方法 带参数的构造方法必须私有防止其他人实例化使用
        private Day(){}
        private Day(String name,int index){
            this.name=name;
            this.index=index;
        }
    }

     

    public class TestEnum {
        public static void main(String[] args) {
            //创建对象
            Day day =Day.monday;
            Day dd=day.valueOf("sunday");
            //下标值的差
            System.out.println(day.compareTo(dd));
            //获取枚举值的名字和下标
            System.out.println(dd.name()+"--"+dd.ordinal());
            //获取对象的属性
            System.out.println(day.getName());
            System.out.println(day.getIndex());
            //获取所有的枚举值
            Day [] days=Day.values();
            for(Day d:days)
                System.out.println(d.name()+"--"+d.ordinal());
        }
    }

     

  • 相关阅读:
    欢迎使用CSDN-markdown编辑器
    欢迎使用CSDN-markdown编辑器
    Math类简介
    Math类简介
    http_server
    tcp服务器
    swoole安装
    laravel源码解析
    VMware的Unity模式
    string.format() %d越界的问题
  • 原文地址:https://www.cnblogs.com/ysmdbk/p/11026746.html
Copyright © 2011-2022 走看看