• Java-枚举类型


    枚举介绍

    Java中的枚举是JDK5.0以后添加的新特性,枚举是用来定义一组数量确定的常量的类。
    枚举类是一个特殊的类,它和普通类一样可以有构造方法,也可以有属性和普通方法。可以实现接口。

    枚举的定义

    public enum Color{
        RED,BLACK,BLUE;
    }
    

    这就定义了一个枚举类,其中的RED,BLACK,BLUE是这个枚举类的实例,每个实例需要用‘,’隔开,最后一个使用‘;’表示结束。说它们是实例那为什么没有用new呢?
    那是因为在JDK5.0以前想要使用枚举需要自己定义。

    public class Color{
        public static final int RED = 1;
        public static final int BLUE = 2;
        public static final int BLACK = 3;
    }
    

    在JDK5.0以后,为了能够更加方便的使用枚举,就出现了enum关键字。定义了枚举类之后,就把之前全部重复的代码给省去了。比如public static final int
    所以才有了上面这样简单的定义。

    枚举的使用

    在定义了枚举类之后,直接使用类名加属性就可以调用。因为所有都是static的。

    public class EnumTest {
        public static void main(String[] args) {
            Color black = Color.BLACK;
        }
    }
    

    在switch中使用

    public class EnumTest {
        public static void main(String[] args) {
            Color red = Color.RED;
            switch (red){
                case RED:
                    System.out.println("红色");
                    break;
                case BLUE:
                    System.out.println("蓝色");
                    break;
                case BLACK:
                    System.out.println("黑色");
                    break;
            }
        }
    }
    

    在switch中使用时,不需要加类名,直接使用对象就行了。

    枚举类的原理

    枚举类实际上是继承了Enum类。

    Enum中常用的方法:

    返回类型 方法名 说明
    String toStirng() 返回枚举类的名称
    枚举类型[] values() 返回返回所有枚举常量
    枚举类型 valuesOf(String name) 根据名称返回枚举常量

    枚举类实现接口

    枚举类实现了接口之后,需要实现对应的抽象方法,有两种实现方式,会有不一样的结果。
    第一种:在枚举类中实现

    public class EnumTest {
        public static void main(String[] args) {
            Color.RED.show();
            Color.BLUE.show();
            Color.BLACK.show();
        }
    }
    
    interface Show{
        void show();
    }
    
    enum  Color implements Show {
        RED,
        BLUE,
        BLACK;
    
        @Override
        public void show() {
            System.out.println("枚举了红色");
        }
    }
    /*
    运行结果:
    枚举了红色
    枚举了红色
    枚举了红色
    */
    

    如果我想要每个颜色打印不一样的数据,这种实现方式就不行了,需要第二种实现方式。

    在每个常量后面实现方法:

    enum  Color implements Show {
        RED{
            @Override
            public void show() {
                System.out.println("枚举了红色");
            }
        },
        BLUE{
            @Override
            public void show() {
                System.out.println("枚举了蓝色");
            }
        },
        BLACK{
            @Override
            public void show() {
                System.out.println("枚举了黑色");
            }
        };
    }
    /*
    运行结果:
    枚举了红色
    枚举了蓝色
    枚举了黑色
    
    */
    
  • 相关阅读:
    1202诗人基本介绍&诗人画像
    1205人物关系优化&诗人轨迹
    把SQL Server 2000 表中的自动编号Id重新开始排列
    一个一直都不明白的东西今天知道了。关于sqlserver2000自动执行。
    服装打版界的扛把子ET自定义操作
    手把手教你搭建集中式版本控制系统SVN服务器
    分享一次实用的爬虫经验
    盘点CSV文件在Excel中打开后乱码问题的两种处理方法
    盘点服装设计所经常性使用的软件ET(下篇)
    sql 每个企业选择一条产品
  • 原文地址:https://www.cnblogs.com/Z-Dey/p/12900496.html
Copyright © 2020-2023  润新知