zoukankan      html  css  js  c++  java
  • java中的枚举类

    • 什么是枚举、枚举类?

    枚举是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。例如:一周只有7天。

    枚举类就是一个类有多个实例,但不是无限个数的实例。

    • 创建无参构造对象的枚举类

    (1)JDK1.5前:

    public class Weekday {
        public static final Weekday MON = new Weekday();
        public static final Weekday TUE = new Weekday();
        public static final Weekday WED = new Weekday();
        public static final Weekday THU = new Weekday();
        public static final Weekday FRI = new Weekday();
    
        private Weekday(){}
    }

    创建对象:

    public static void main(String[] args) {
            Weekday mon = Weekday.MON;
            Weekday tue = Weekday.TUE;
            Weekday wed = Weekday.WED;
            Weekday thu = Weekday.THU;
            Weekday fri = Weekday.FRI;
        }

    (2)JDK1.5后:

    public enum Weekday {
        MON,TUE,WED,THU,FRI;
    }

    创建对象和上面的方法一样。

    • 创建有参构造对象的枚举类

    (1)JDK1.5前:

    public class Weekday {
    
        public static final Weekday MON = new Weekday("星期一");
        public static final Weekday TUE = new Weekday("星期二");
        public static final Weekday WED = new Weekday("星期三");
        public static final Weekday THU = new Weekday("星期四");
        public static final Weekday FRI = new Weekday("星期五");
    
        private String name;
    
        private Weekday(String name){
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    }

    创建对象(和上面一样):

    public class Demo1 {
        public static void main(String[] args) {
            Weekday mon = Weekday.MON;
            Weekday tue = Weekday.TUE;
            Weekday wed = Weekday.WED;
            Weekday thu = Weekday.THU;
            Weekday fri = Weekday.FRI;
            System.out.println(mon.getName());   // 输出结果:星期一
        }
    }

    (2)JDK1.5后:

    public enum Weekday2 {
        MON("星期一"),TUE("星期二"),WED("星期三"),THU("星期四"),FRI("星期五");
    
        private String name;
    
        private Weekday2(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    }

    创建对象和上面的方法一样。

    • 特殊情况:枚举类里面有抽象方法

    (1)jdk1.5前:

    public abstract class Weekday {
    
        public static final Weekday MON = new Weekday("星期一"){
            @Override
            public void show() {
                System.out.println("今天是星期一");               // 匿名类。父类引用指向子类对象。
            }
        };
        /*public static final Weekday TUE = new Weekday("星期二");
        public static final Weekday WED = new Weekday("星期三");
        public static final Weekday THU = new Weekday("星期四");
        public static final Weekday FRI = new Weekday("星期五");*/
    
        private String name;
    
        private Weekday(String name){
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public abstract void show();
    }

    (2)jdk1.5后:

    public enum Weekday2 {
        MON("星期一"){
            @Override
            public void show() {
                System.out.println("今天是星期一");
            }
        },TUE("星期二") {
            @Override
            public void show() {
                System.out.println("今天是星期二");
            }
        },WED("星期三") {
            @Override
            public void show() {
                System.out.println("今天是星期三");
            }
        },THU("星期四") {
            @Override
            public void show() {
                System.out.println("今天是星期四");
            }
        },FRI("星期五") {
            @Override
            public void show() {
                System.out.println("今天是星期五");
            }
        };
    
        private String name;
    
        private Weekday2(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public abstract void show();
    }
  • 相关阅读:
    今天遇到的i++问题之记录
    JS实现表单输入Enter键转换焦点框
    点击不同链接,显示同一个页面下的不同页面
    jQuery获取属性之自己遇到的问题
    数据结构2 二叉树的高度和宽度
    Android 实现两个list分别出现(在某一时刻只出现一个控件)
    <转>Android开发使输入框点击弹出日期选择对话框的方法
    Java 图片转字节流 实现 图片->字节流(字符串)->图片
    Android 动态添加Spinner(.java文件内实现) 实现 改变spinner 内文字属性
    Android 动态添加线性布局(.java文件内) 实现控件按比例分割空间
  • 原文地址:https://www.cnblogs.com/chichung/p/10300222.html
Copyright © 2011-2022 走看看