首页 > 编程语言 >java中的自定义枚举类

java中的自定义枚举类

时间:2023-02-02 10:33:16浏览次数:45  
标签:java name 自定义 Season 枚举 new public String

自定义枚举类有两种写法

 

第一种写法:

class Season {
    private String name;
 
    //在 Season 内部,直接创建固定的对象 ,
    //优化,可以加入 final 修饰符
    public static final Season SPRING = new Season("春天");
    public static final Season WINTER = new Season("冬天");
    public static final Season AUTUMN = new Season("秋天");
    public static final Season SUMMER = new Season("夏天");
 
    //将构造器私有化,为了防止直接 new
    private Season(String name) {
        this.name = name;
    }
 
    //去掉 setXxx 方法, 防止属性被修改,只保留getXxx方法,用于读取
    public String getName() {
        return name;
    }
 
    //重写toString()方法,用于输出
    @Override
    public String toString() {
        return "Season{" + "name='" + name + '}';
    }

  此处注意两个地方:

  

 

 

 

   此处是再类内部直接生成实例对象。

 

 

第二种写法

 

enum Season {
    private String name;
 
    SPRING("春天")
 
    //将构造器私有化,为了防止直接 new
    private Season(String name) {
        this.name = name;
    }
 
    //去掉 setXxx 方法, 防止属性被修改,只保留getXxx方法,用于读取
    public String getName() {
        return name;
    }
 
    //重写toString()方法,用于输出
    @Override
    public String toString() {
        return "Season{" + "name='" + name + '}';
    }

  注意两个地方:

  

 

总结:

  在关键字class作用下的

public static final Season SPRING = new Season("春天");

  等价于在关键字enum作用下的
SPRING("春天")



注:
  如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略。
  当有多个枚举对象时,使用 “,” 间隔,最后有一个分号结尾。
  枚举对象必须放在枚举类的行首。

标签:java,name,自定义,Season,枚举,new,public,String
From: https://www.cnblogs.com/ReturnOfTheKing/p/17085128.html

相关文章

  • 基础认识-Java工具认识
    JDK——JavaDevelopmentKit扩充开发工具,父集JRE——JavaRuntimeEnvironment包含applet,保障Java语句可运行JVM——JavaVirtualMachine模拟CPU(虚拟机)解释型、编译......
  • ELK系列(4) - Elasticsearch cannot write xcontent for unknown value of type class
    问题与分析在使用Elasticsearch进行index数据时,发现报错如下:java.lang.IllegalArgumentException:cannotwritexcontentforunknownvalueoftypeclassjava.math.BigD......
  • Java Socket通信(一)之客户端程序 发送和接收数据
     JavaSocket通信(一)之客户端程序发送和接收数据网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类。通过这个类可以连接到指定IP或域名的服务......
  • Java中Socket 实现最简单的客户端与服务端通信
    Java中Socket实现最简单的客户端与服务端通信引言:因为最近项目中要接入某通信协议接口,基于TCP/IP的socket接口。于是就在本地弄一个最简单的Socket通信仅供学习。话不多......
  • JavaScript 中URL构造函数
    前言URL对于我们开发人员来讲,应该是非常熟悉了。在对URL进行参数拼接时,我们一般都会直接进行字符串拼接或使用模版字符串,因为这样非常方便,但是我们这样其实会在不知不觉......
  • robotframe work中 自定义python library使用global variable
    在用robotframework的小伙伴,有没有遇到这样一个问题:  当你用python写一个libary时, 需要用到robotframe外面定义的globalvariable. 怎么处理?  这时一般人的做......
  • 通过IDEA生成JavaDoc文档
    一.通过IDEA来生成JavaDoc文档:1.创建一个存放JavaDoc的文件夹2.打开IDEA上方工具(Tools),生成JavaDoc文档(GenerateJavaDoc...)//如图一3.选择我们要生成的......
  • 读Java8函数式编程笔记08_测试、调试和重构
    1. Lambda表达式的单元测试1.1. 单元测试是测试一段代码的行为是否符合预期的方式1.2. Lambda表达式没有名字,无法直接在测试代码中调用1.2.1. 将Lambda表达式放入......
  • 方法final参数java8感想
    今天看到Latke的demo里有final的形参,查了一下使用final参数的状态有两种:1.让接收项目的程序员知道这个变量不能修改2.这个参数不能被重新赋值java8中有一种方法引用......
  • java_swing绘制图形
    在java的jpanel绘制图形使用paint方法,在里面使用super.paint清除之前的残留在while里使用repaint进行循环绘画publicvoiddisplay(){ this.repaint(); } public......