首页 > 编程语言 >Java之枚举类

Java之枚举类

时间:2023-03-05 23:13:10浏览次数:28  
标签:code Java 对象 private 枚举 message public

Java之枚举

枚举类的格式:

pbulic enum 枚举类类名{
    枚举对象1(实参),枚举对象1(实参)...;
    属性名;
    (无参/有参)构造器;
    get方法;
}

枚举类中不建议使用set方法,因为每个枚举对象都被public static final修饰,当用set方法进行赋值的时候,实际上是修改内存中静态变量的值,这个值原本的意义就被修改了,这个时候如果其它地方再来判断,必然出错。

eg:


public enum EnumDemo {
    SUCCESS(001,"消息传递成功"),
    FAILED(002,"消息传递失败");

    private Integer code;
    private String message;

    private EnumDemo(Integer code,String message){
        this.code = code;
        this.message = message;
    }

    public Integer getCode(){
        return code;
    }
    public String getMessage(){
        return message;
    }
}

使用Lambok快速开发枚举类

@Getter
@AllArgsConstructor
public enum EnumDemo2{
    SUCCESS(001,"消息传递成功"),
    FAILED(002,"消息传递失败");
    private Integer code;
    private String message;
}

枚举类注意事项:

枚举类无法通过new进行实例化对象的创建,否者汇编报错。

当枚举类没有任何构造器的时候,Jvm的编译器会提供一个pravite的无参构造器供其使用。有的话,就不会提供。

枚举类的构造器只能被private进行修饰,如果没有,且也不是“缺省”,JVM的编译器会自动补全。

枚举类中的构造器无法使用super(实参)。

枚举类中的枚举对象隐式被 public static final 关键字修饰,如果显示修饰,编译报错。

枚举对象必须写在枚举类的第一行,否者编译报错。

枚举对象如果使用无参构造器进行对象的初始化,枚举对象后面的()可以不写。

所有的枚举类都隐式继承Enum类。

所有的枚举类都无法继承其它类,因为唯一单继承机会给了Enum类。

所有的枚举类都可以实现多个接口。

所有的枚举类都不可以被其它类进行继承。

标签:code,Java,对象,private,枚举,message,public
From: https://www.cnblogs.com/joudys/p/17182137.html

相关文章

  • java多线程分析
    在java多线程中编程中,异常处理非常重要,会影响应用程序的整体运行情况。1、线程中可以捕捉的异常我们在普通的方法中,是支持exception往上层throw,简单来说,就是当前逻辑不......
  • java观察者模式
    1、广播站packageobserver;importjava.util.Observable;//广播站publicclassRadioextendsObservable{privateStringcontent;publicvoidbroadcast(String......
  • Java_异常链
    emm其实就是异常一直抛出传递,但是最后只会显示最后一个异常,这就是异常链。   需要用到Trowable的cause属性但是除了Error、Exception和RuntimeException外,都不存......
  • JAVA多线程(四)--锁的定义
    一、乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次拿数据时都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这......
  • JAVA--关于递归
    递归概念: 方法直接或者间接的方式调用自己本身,这样的形式称为递归递归的三要素: 1、要有边界条件,也就是停止递归的条件; 2、有点像循环,需要给一个前进条件,每次......
  • C++枚举型变量用法
    #include<iostream>#include<string>usingnamespacestd;intmain(){enumname{one,two=23,three};//强制类型转换inta=one;cout<<a<<endl;//不能这样直接赋值//one......
  • Java小练习--统计字符串中字母和数字的个数
    题目统计字符串中字母和数字的个数完整代码packagetestimportjava.util.Scanner;publicclasscustomer1{publicstaticvoidmain(Stringargs[]){System.out.......
  • java-springmvc
    1、入门案例1.1、导包<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.18</version></dependency><de......
  • 设计模式-javascript实现【迭代器模式】
    定义:迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之......
  • Java基础随笔(2)static静态详解
    1packagecom.chapter;23classBowl{4Bowl(intmarker){5System.out.println("Bowl+("+marker+")");6}78voidf1(int......