首页 > 其他分享 >枚举(enum)

枚举(enum)

时间:2023-02-16 19:55:13浏览次数:42  
标签:BLUE Color enum 枚举 println RED

枚举(enum)

枚举是一个特殊的类,一般表示一组常量,如一年四季,一周七天

枚举用关键字enum表示,各个常量使用 ',' 隔开

示例:

enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color c=Color.RED;
    sout(c);
}
//执行结果为 RED

enum常用的几个方法

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializable 和 java.lang.Comparable 两个接口

values() 返回枚举中的所有值

valueof() 返回指定字符串值常量的枚举值

ordinal() 返回每个枚举常量的索引,即在一组常量中处于第几个位置

enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color c=Color.YELLOW;
    System.out.println(Color.valueOf("RED"));
    System.out.println(c.ordinal());
}
//执行结果为
//RED
//1

用途

枚举使用在内部类中

class A{
    enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color c=Color.RED;
    sout(c);
}
}
//执行结果为 RED

注意:枚举中的所有值都是 public static final 类型的

迭代枚举元素

    enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    for(Color color:Color.values()){
        sout(color)
    }
    
}

在switch中使用枚举

    enum Color{
    RED,YELLOW,BLUE
}
public staic void main(String[] args){
    Color color=Color.BLUE;
	 switch (color){
            case RED:
                System.out.println("红色!");
                break;
            case BLUE:
                System.out.println("蓝色!!");
                break;
            default:
                System.out.println("绿色!!!");
                break;

        }
    
}

枚举类成员

枚举类和普通类相同,都有变量,方法,和构造函数。构造函数只能使用private关键字修饰,外部无法调用

枚举类也可以有普通方法和抽象方法,若有抽象方法则枚举类的每个实例都必须重写该方法

enum Color
{
    RED, GREEN, BLUE;

    private Color(){
        System.out.println("调用构造方法的是"+this.toString());
    }
    public void method(){
        System.out.println("枚举类中也可以有方法!!!");
    }
 public static void main(String[] args)
    {

        Color color=Color.RED;
        Color color1=Color.BLUE;
        System.out.println(color);
        color.method();
    }
    //输出结果为
    /*
    调用构造方法的是RED
	调用构造方法的是GREEN
	调用构造方法的是BLUE
	RED
	枚举类中也可以有方法!!!
    */

从上述结果看,枚举中的每个常量都是枚举的一个实例,且在获取一个常量时,会将所有常量都实例化

且只会实例化一次

标签:BLUE,Color,enum,枚举,println,RED
From: https://www.cnblogs.com/planted/p/17128091.html

相关文章

  • 93. 递归实现组合型枚举
      题解:递归方法,在上一题的题解上面加一个限定就行了点击查看代码#include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;typedefpair<......
  • 前端字典字段处理enum.js
    enum.js/***获取枚举值:STATUSMAP.TTT*获取枚举描述:STATUSMAP.getDesc('SH')*通过枚举值获取描述:STATUSMAP.getDescFromValue('TG')*/functioncreateEnum(def......
  • java 按照自定义顺序枚举实体类的属性值
    工具类/***按照字段顺序进行拼接**@paramobj对象,需要在字段上添加FieldOrder注解*@paramfix拼接符号*@param<T>*@ret......
  • Java 枚举类转json对象
     1.情景展示 如上图所示,我想要将枚举类转换成json对象,key对应属性名称,value对应属性值,效果如下:{"IvcVoucherCode":"200","IvcVoucherStatus":"票据模板下载成功"}......
  • 数据字典标准与统一的重要性(码表&枚举值)
    在日常的软件开发当中,开发者经常会听到“公共代码、编码、码表、枚举值”这样的名词,对这些概念可能会有些混淆和认知不透彻,那么这篇文章会详细论述一下关于数据字典的相关概......
  • gdb debug python2.7 AttributeError: module 'enum' has no attribute 'IntFlag'
    gdbpythoncore之后报如下错误:该错误会导致后续bt命令无法解析名称符号。如果enum34不是用过pip安装的,则进入pythonimportenum,然后print(enum.__file__)找到......
  • ResultCodeEnum
    packagecom.mervin.yhapi.common;importlombok.Getter;importlombok.ToString;@Getter@ToStringpublicenumResultCodeEnum{SUCCESS(true,20000,"成功"),UN......
  • 【JavaScript】11_枚举属性+可变类型+修改对象和属性与方法
    4、枚举属性枚举属性,指将对象中的所有的属性全部获取for-in语句\-语法:for(letpropNamein对象){语句...}\-for-in的循环体会执行多次,有几个属性就会执行几次,每次执......
  • C语言--自定义数据类型 typedef struct 位域 union enum
    C语言中可以堆类型赋予新名字语法:typedefTypeNewTypeName注意:typedef并没有创建新类型,只是创建了类型别称eg:typedefintaa;typdef可以在函数中定义,“”局部......
  • usb 2.0枚举过程
    device枚举过程:hub枚举过程: ......