我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在Java中自定义一个枚举类

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在Java中自定义一个枚举类

本文章向大家介绍如何在Java中自定义一个枚举类的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Java的特点有哪些

Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

1.枚举类

注:

JDK1.5之前需要自定义枚举类

JDK 1.5 新增的 enum 关键字用于定义枚举类

若枚举只有一个成员, 则可以作为一种单例模式的实现方式

1.枚举类的属性

枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰

枚举类的使用 private final 修饰的属性应该在构造器中为其赋值

若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的传入参数

2.自定义枚举类

如何自定义枚举类的方法写在注释里

//自定义枚举类class Season { //1.提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //2.声明为final的属性,在构造器中初始化 private Season(String seasonName,String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3.通过公共的方法来调用属性 public final String getSeasonName() { return seasonName; } public final String getSeasonDesc() { return seasonDesc; } //4.创建枚举类的对象:将类的对象声明为public static final public static final Season SPRING = new Season("春天", "春暖花开"); public static final Season SUMMER = new Season("夏天", "夏日炎炎"); public static final Season FALL = new Season("秋天", "硕果累累"); public static final Season WINTER = new Season("冬天", "白雪皑皑");   @Override public String toString() { return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]"; } public void show() { System.out.println("这个一个季节"); }}

Test

public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring); spring.show(); System.out.println(spring.getSeasonName() +" "+spring.getSeasonDesc()); }}

3.Enum枚举类

必须在枚举类的第一行声明枚举类对象。

枚举类和普通类的区别:

①使用 enum 定义的枚举类默认继承了 java.lang.Enum 类

②枚举类的构造器只能使用 private 访问控制符

③枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾). 列出的实例系统会自动添加 public static final 修饰

JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定

Dome

interface info{ void show();}//枚举类enum Season1 implements info{ SPRING("春天", "春暖花开"){ public void show() { System.out.println("春天在哪里?"); } }, SUMMER("夏天", "夏日炎炎") { public void show() {  System.out.println("生如夏花"); } } , AUTUTO("秋天", "硕果累累") { public void show() {  System.out.println("秋天是用来分手的季节"); } }, WINTER("冬天", "白雪皑皑") { public void show() {  System.out.println("冬天里的一把火"); } };  //1.提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //2.声明为final的属性,在构造器中初始化 private Season1(String seasonName,String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3.通过公共的方法来调用属性 public final String getSeasonName() { return seasonName; } public final String getSeasonDesc() { return seasonDesc; }  @Override public String toString() { return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]"; }// public void show() {// System.out.println("这个一个季节");// }}

Test

常用方法写在注释里面

public class TestEnum { public static void main(String[] args) { System.out.println("------------enum关键字"); //1.values():返回枚举类数组 Season1 [] seasons = Season1.values(); for(int i = 0; i < seasons.length;i++) {  System.out.println(seasons[i]); } //2.valueOf(String name):要求传入的形参name是枚举对象的名字 //否则:报java.lang.IllegalArgumentException异常 String str = "SPRING"; Season1 sea = Season1.valueOf(str); System.out.println(sea); //线程的运行状态 Thread.State[] states = Thread.State.values(); for (int i = 0; i < states.length; i++) {  System.out.println(states[i]); }  }}

4.实现接口的枚举类

实现接口的枚举类和普通 Java 类一样,枚举类可以实现一个或多个接口

若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法

实现方法可以看上面的demo。

补充:java新特性(枚举,注解,接口定义加强)

一.枚举

1.枚举表达

enum ClassName{}

2.枚举的本质:

多例设计模式

3.枚举产生

JKD1.5产生枚举,它只是一种类型的包装:使用enum关键字定义的枚举本质上相当于class定义的类,默认继承java.lang.Enum父类

4.枚举中常见的方法

取得枚举名字:public final String name()

取得枚举序号:public final int ordinal()

取得所有枚举对象:values():返回值类型:Enum[]

5.enum和Enum

enum是一个关键字,使用enum定义的枚举本质上就相当于一个类继承了Enum这个抽象类。

6.枚举中可以定义的结构

可以有属性,构造方法

枚举中包含其他类结构,枚举对象的声明必须放在枚举类的首行

枚举可以实现接口,实现接口后,枚举对象变成接口对象

二.注解(Annotation):JDK1.5新增最常用两大特性。

JDK1.5提供的三大注解:@Override,@Deprecated,@SuppressWarnings

1.准确覆写(@Override):

如果该方法覆写正确,不会有编译错误。如果方法名,参数列表与父类中同名方法不同,则会报错。

public class Person{   @Override // 如果该方法覆写正确,不会有编译错误。如果方法名,参数列表与父类中同名方法不同,则会报错。  public String toString()  {  }}

2.过期处理(@Deprecated):

作用于类和方法上,表示不推荐用户使用此类或方法,但是能正常使用。

@Deprecatedpublic Void fun() {}

3.压制警告(@SuppressWarnings):

当调用了某些操作可能产生问题的时候会出现警告进行,又不想总提示警告,这个时候可以使用注解压制警告。

三.接口定义加强

JDK8以前:全局变量+抽象方法

JDK8以后:

default定义的普通方法,通过对象调用

static定义的静态方法,通过接口调用

interface Imessage{  public default void fun()   //追加普通方法,有方法体  {    System.out.println("Holle IMessage");  }    public static IMessage getInstance()  //可以由接口名称直接调用  {    return new MessageImp();  }  public void print();}class MessageImp imlements Imessage{  @Override  public void print()  {    System.out.println("Holle MessageImp ");  }}

以上就是小编为大家带来的如何在Java中自定义一个枚举类的全部内容了,希望大家多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在Java中自定义一个枚举类

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在Java中自定义一个枚举类

本文章向大家介绍如何在Java中自定义一个枚举类的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序
2023-06-06

在 Java 枚举中怎样定义常量?(java枚举中如何定义常量)

在Java编程中,枚举(Enumeration)是一种特殊的数据类型,它允许定义一组具名的常量。枚举类型提供了一种更安全、更易于维护的方式来管理一组相关的常量。本文将详细介绍在Java枚举中如何定义常量。一、枚举的基本概念
在 Java 枚举中怎样定义常量?(java枚举中如何定义常量)
Java2024-12-22

Java 中如何定义枚举类并实现序列化?(Java定义枚举类如何序列化)

在Java编程中,枚举类是一种特殊的数据类型,它用于定义一组常量。而序列化是将对象转换为字节流的过程,以便在网络传输或存储到文件中。有时候,我们需要将枚举类进行序列化,以便在不同的环境中使用。本文将介绍如何在Java中定义枚举类并实现序列化。一、为什么要
Java 中如何定义枚举类并实现序列化?(Java定义枚举类如何序列化)
Java2024-12-19

在 Java 中如何实现对一个枚举类的继承?(java中怎么继承一个枚举类)

在Java中,枚举类是一种特殊的数据类型,它用于定义一组常量。有时候,我们可能需要继承一个枚举类来扩展其功能或添加新的常量。本文将详细介绍在Java中如何继承一个枚举类。一、理解枚举类枚举类是Java5引入的一种新
在 Java 中如何实现对一个枚举类的继承?(java中怎么继承一个枚举类)
Java2024-12-15

在 Java 中怎样定义一个类?(java如何定义一个类)

在Java编程中,定义一个类是构建程序的基础步骤。类是对象的模板,它定义了对象的属性和行为。以下是在Java中定义一个类的详细步骤:一、类的声明在Java中,使用class关键字来声明一
在 Java 中怎样定义一个类?(java如何定义一个类)
Java2024-12-21

使用 Java 枚举和自定义数据类型

Java 枚举和自定义数据类型是开发人员工具包中的强大工具。它们有助于编写更具可读性、可维护性和高效性的代码。了解如何有效地使用 Java 的这些功能将显着提高您的编程技能。

java中枚举类型定义和重写枚举的示例分析

这篇文章将为大家详细讲解有关java中枚举类型定义和重写枚举的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是枚举类型枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用
2023-05-30

java枚举如何定义与使用

在Java中,枚举是一种特殊的数据类型,用于定义一组常量。枚举常量在声明时就被确定,并且不能被修改。下面是定义和使用Java枚举的步骤:1. 定义一个枚举类型:```javaenum Day {MONDAY, TUESDAY, WEDNES
2023-08-21

在 Java 中怎样使用 switch 语句来实现枚举的自定义操作?(如何在Java中使用switch语句实现枚举的自定义操作)

在Java编程中,switch语句是一种常用的控制结构,用于根据不同的条件执行不同的代码块。而枚举类型(Enum)是Java5引入的一种特殊的数据类型,它可以定义一组常量。将switch语句与枚举类型结合使用,可以实现更清晰、更可读
在 Java 中怎样使用 switch 语句来实现枚举的自定义操作?(如何在Java中使用switch语句实现枚举的自定义操作)
Java2024-12-19

Java如何实现自定义枚举值校验器

本篇内容主要讲解“Java如何实现自定义枚举值校验器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现自定义枚举值校验器”吧!前言定义一个枚举类,现需要对传入的枚举值进行范围校验。@
2023-07-05

C语言枚举类型如何定义

C语言枚举类型可以使用关键字`enum`来定义。定义枚举类型的语法格式如下:```cenum 枚举类型名 {枚举常量1,枚举常量2,...};```其中,`枚举类型名`是自定义的枚举类型名称,可以根据实际需要进行命名。`枚举常量1`、`枚举
2023-10-10

如何在Java中自定义封装一个JDBC工具类

如何在Java中自定义封装一个JDBC工具类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。步骤① 创建配置文件(config.properties),用于存放注册驱动和连接
2023-06-06

Java中如何自定义一个类加载器

这篇文章主要介绍了Java中如何自定义一个类加载器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-21

java中怎么继承一个枚举类

在Java中,枚举类是不能被继承的。枚举类是通过使用`enum`关键字来定义的,它们是final的,意味着不能被继承。枚举类的实例是有限且固定的,不能进行扩展或修改。如果想要扩展一个枚举类,可以在另一个类中定义一个新的枚举类,并且将原始枚举
2023-10-12

在 Java 中如何定义一个 List?(java如何定义一个list)

在Java编程中,List是一种常用的集合数据结构,用于存储一组有序的元素。它提供了丰富的操作方法,方便对元素进行添加、删除、查询等操作。以下是在Java中定义一个List的详细步骤:一、导入相关的类库在Java
在 Java 中如何定义一个 List?(java如何定义一个list)
Java2024-12-16

在 Java 中如何自定义异常类?(java中怎么自定义异常类)

在Java编程中,异常处理是一个非常重要的方面。除了使用Java内置的异常类,我们还可以自定义异常类来满足特定的需求。自定义异常类可以提供更详细的错误信息,帮助开发人员更好地理解和处理程序中的错误。一、为什么要自定义异常类?
在 Java 中如何自定义异常类?(java中怎么自定义异常类)
Java2024-12-14

Java 中的枚举类是否可以实现迭代?(Java定义枚举类可以实现迭代吗)

在Java编程中,枚举类是一种特殊的数据类型,它用于定义一组固定的常量。枚举类提供了一种更安全、更易读的方式来表示一组相关的常量。那么,Java定义枚举类可以实现迭代吗?这是一个常见的问题,下面我们将详细探讨这个问题。一、枚举类的基本概念
Java 中的枚举类是否可以实现迭代?(Java定义枚举类可以实现迭代吗)
Java2024-12-19

怎么在java中自定义一个类加载器

本篇文章为大家展示了怎么在java中自定义一个类加载器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如果要使用自定义类加载器加载class文件,就需要继承java.lang.ClassLoader类
2023-05-30

在Java中如何使用枚举

这篇文章给大家分享的是有关在Java中如何使用枚举的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。枚举类型(Enumerated Types) 让我们先看下面这一段小程序: enum Day {SUNDAY, MO
2023-06-03

如何在 Java 中自定义类加载器?(java怎么自定义类加载器)

在Java开发中,类加载器是一个非常重要的组件,它负责加载类文件并将其转换为Java虚拟机(JVM)可以理解的形式。默认情况下,Java提供了一些内置的类加载器,如引导类加载器(BootstrapClassLoader)、扩展类加载器(ExtensionClassLoader)和
如何在 Java 中自定义类加载器?(java怎么自定义类加载器)
Java2024-12-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录