enum 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java. lang.Enum类,而不是继承Object类,因此枚举类不能显式继承其他父类。...使用enum定义非抽象的枚举类时默认会使用final修饰,因此枚举类不能派生子类。...枚举类的构造方法只能使用private访问修饰符,如果省略,则默认使用private修饰;如果强制指定访问修饰符,则只能指定为private。...枚举类的所有实例必须在枚举类的类体第一行显式列出,否则该枚举类永远不能产生实例。列出的枚举实例默认使用public static final进行修饰。
Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等,订单的状态。...Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。 1.定义一个枚举类。...java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口。...values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中: values() 返回枚举类中所有的值。...枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。 枚举类中的抽象方法实现,需要枚举类中的每个对象都对其进行实现。
一、 枚举类的说明 枚举类的理解:类的对象只有有限个,确定的。 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类只一个对象,则可以作为单例模式的实现方式。...二、如何定义枚举类 ① 自定义枚举类 class Season{ // 1.声明Season对象的属性:private final修饰 private final String seasonName...// 使用enum关键枚举类 enum Season1{ // 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象";"结束 SPRING("春天","春暖花开"),...,枚举类常用方法:(继承于 java.lang.Enum 类) value() 返回所有的枚举类对象的构成的数组 valueOf(String objName):返回枚举类中对象名是 objName 的对象...interface Info{ void show(); } // 使用enum关键字枚举类 enum Season2 implements Info{ //1.提供当前枚举类的对象,
1、枚举是什么? Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象。比如一个季节类有春、夏、秋、冬四个对象;一个星期有星期一到星期日七个对象。...2、枚举类和普通类的区别 ①、使用 enum 定义的枚举类默认继承 java.lang.Enum 类,即枚举类是不能再继承别的类了。...而普通类的一般父类默认是 Object ②、枚举类的构造器只能使用 private 定义,而普通类的还可以用 public 修饰 ③、枚举类的所有实例必须在枚举类中显示列出(,分隔 ;结尾)...,列出的实例系统会默认自动添加 public static final 修饰 ④、所有的枚举类都提供了一个 values() 方法,可以用来遍历枚举值 3、怎么用枚举? ...switch--case 的表达式(JDK 1.5以后) ②、如果枚举类的对象只有一个,那么可以作为单例模式的实现
枚举类的使用 枚举类的实现 JDK1.5之前需要自定义枚举类 JDK 1.5 新增的 enum 关键字用于定义枚举类 若枚举只有一个对象, 则可以作为一种单例模式的实现方式。...枚举类的属性 枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰 枚举类的使用 private final 修饰的属性应该在构造器中为其赋值 若枚举类显式的定义了带参数的构造器... 使用说明 使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类 枚举类的构造器只能使用 private 权限修饰符 枚举类的所有实例必须在枚举类中显式列出...而且 Java 要求必须先定义 enum 实例。 覆盖枚举的方法 如:toString()方法覆盖,因此拿到枚举对象,直接打印输入此对象的信息而不是一个地址。...和普通 Java 类一样,枚举类可以实现一个或多个接口 若每个枚举值在调用实现的接口方法呈现相同的行为方式,则只要统一实现该方法即可。
假设我们现在想表达星期,为了避免魔法值的出现,我们可能会写一个常量类: package com.tea.modules.java8.enums; /** * com.tea.modules.java8...JDK提供了Enum枚举类,让代码可读性更强,同时它也是类型安全的类,所有的枚举类都被final修饰,还可以很好地实现单例模式....枚举类基础用法 定义一个枚举类 Week package com.tea.modules.java8.enums; /** * com.tea.modules.java8.enums *...枚举类是final类,不支持继承关系。...{ /** * 打印枚举的名字 */ void printName(); } 枚举类实现接口 package com.tea.modules.java8.enums
枚举 枚举对应英文(enumeration,简写enum)。 枚举是一组常量的集合。 可以这样理解:枚举是一种特殊的类,里面只包含一组有限的特定的对象。...枚举的两种实现方式 自定义类实现枚举 使用enum关键字实现枚举 自定义实现枚举 不需要提供setXxx方法,因为枚举对象值通常为制度。...enum关键字实现枚举注意事项 当我们使用enum关键字开发一个枚举类时,默认会继承Enum类,而且是一个fianl类。...} } enum实现接口 实现enum关键字后,就不能再继承其他类,因为enum会隐式继承Enum,而java是单继承机制。...,因为enum会隐式继承Enum,Java是单继承模式。
); static {}; } 从反编译文件中可以得出以下结论: 定义的枚举值作为枚举类的属性,会被默认修饰为 public static final ,从修饰关键字,即可看出枚举值本质上是静态常量...3.枚举特性 枚举的特性,归结起来就是一句话: 除了不能继承,基本上可以将 enum 看做一个常规的类。...因为 enum 实际上都继承自 java.lang.Enum 类,而 Java 不支持多重继承,所以 enum 不能再继承其他类,当然也不能继承另一个 enum。但是枚举可以定义接口并实现。...Java 中提供了两个方便操作 enum 的工具类——EnumSet 和 EnumMap。...,大大加强了程序的可读性、易用性和可维护性,并且在此基础之上又进行了扩展,使之可以像类一样去使用,更是为Java对离散量的表示上升了一个台阶。
文章目录 枚举类的使用 如何定义枚举类 方式一:jdk5.0之前,自定义枚举类 方式二:jdk5.0,可以使用enum关键字定义枚举类 Enum类的主要方法 toString() values() valueOf...(String objName) 使用enum关键字定义的枚举类实现接口的 情况一:实现接口,在enum类中实现抽象方法 情况二:让枚举类的对象分别实现接口中的抽象方法 枚举类的使用 枚举类的理解:类的对象只有有限个...我们称此类为枚举类 当需要定义一组常量时,强烈建议使用枚举类 如果枚举类中只有一个对象,则可以作为单例模式的实现方式。...如何定义枚举类 方式一:jdk5.0之前,自定义枚举类 //自定义枚举类 class Season{ //1.声明Season对象的属性:private final修饰 private final...使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类 枚举类的构造器只能使用 private 权限修饰符 枚举类的所有实例必须在枚举类中显式列出(, 用于分隔
开发过程中为了代码的可阅读性和可维护性,很多类型字段往往会习惯使用枚举去定义,可是在一些判断里面想用switch去代替if else 就会出现以下问题 public enum SexType {...public void setWork(String work) { this.work = work; } } 如果直接使用会因为case后跟的是常量表达式而导致报错 解决办法:知道枚举的值...,可先获取枚举值对应的枚举,再使用switch 1、修改枚举类,新增一个静态方法,getByType() package com.jaryn.emun; public enum SexType {
Date 和 Calendar 转 String 借助 SimpleDateFormat 类的 format 方法,Calendar.getTime() 返回 Date,最终 Calendar 也是转化为...// see SimpleDateFormat in Java API String format = new String("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat...cal.set(2015, 3 - 1, 1); 复制 Calendar Calendar calDst = (Calendar)calSrc.clone(); 求本周、上周、下周的起始时间 做了一个工具类来处理此事
如何创建 首先,从名字就可以看出,枚举是一个类,那么我们就可以直接在创建时选择枚举就可以。 或者我们也可以在普通类前面加上enum关键词。...使用枚举 values() 返回枚举类中所有的值。 ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。 valueOf()方法返回指定字符串值的枚举常量。...该方法为静态方法,调用者为枚举类,不是枚举值; 该方法形参只要一个String类型的值即可,并且该String值为枚举值对应的名称,即toString()方法返回的值(比如枚举类为SPRING,对应的名称就是...getDeclaringClass(): 返回该枚举变量所在的枚举类。 使用示例 首先我们定义了一个枚举类,在Week2包里面。 创建一个测试类,代码如下,我将常用方法挨个使用了一遍。...(Week.values()[0]); //找到枚举类Week2.Week中值为MON的索引 System.out.println(Week.MON.ordinal())
1、枚举类使用情况一: 1 package com.bie.util; 2 3 import java.util.HashMap; 4 import java.util.Map;...4=登陆密码错误} 104 //System.out.println(LoginResult.getChoiceMap()); 105 } 106 107 } 2、枚举类使用情况二...* 5 * @author biehl 6 * 7 * @date 2018年8月2日下午3:38:28 8 * 9 * @Notes REGISTER("注册"),这种类型的枚举可以使用在调用此枚举类然后使用...System.out.println(OperatorType.getResultEnumByDesc("删除")); 56 57 } 58 59 } 3、枚举类使用情况三...: 1 package com.bie.util; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 public
JKD1.5之后使用 Java 枚举类型 enum 可以更贴近地表示这种常量。...2、枚举的定义 2.1 简单枚举定义 GenderEnum 性别枚举 /* 性别枚举 */ public enum GenderEnum { //定义枚举类型的变量(所有定义的变量都是当前枚举类型的实例名...System.out.println(student); } 运行结果: 2.2 带参枚举定义 必须声明内部私有属性,方便获取枚举类型实例的参数值 必须声明跟实例对象相符合的内部私有构造方法...对外声明get方法,只允许通过枚举的实例获取对应参数,不允许setter方法,枚举实例是通过构造方法初始化的 UserStatusEnum 用户状态枚举 /* 用户状态 */ public...public String getStatusMsg() { return statusMsg; } //一般,在枚举类中,要提供一个静态的普通方法,当你不知道枚举的定义
在日常写项目时,很多数据字典常量都需要定义和使用,同时在 Java 面试中,枚举也是一个绕不开的话题,这篇文章就来详细介绍一下枚举的定义以及使用。 01 【什么是枚举类?】...枚举类型在 C# 或 C++ 、 java 、 VB 等一些编程语言中是一种基本数据类型而不是构造数据类型。 而在C语言中则是一种构造数据类型。...枚举类的定义就是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内,使用枚举可以很方便地定义数据常量、以及我们的使用。 02 【为什么需要枚举类?】...: valueOf():返回当前枚举类的name属性,如果没有,则throw new java.lang.IllegalArgumentException()。...具体可以查看java.lang.Enum源码。 values():返回包括所有枚举变量的数组。
API的使用 enum ImagesTypeEnum { JPG, JPEG, PNG, GIF; } getEnum(Class enumClass, String enumName) 通过类返回一个枚举...EnumUtils.getEnum(ImagesTypeEnum.class, "JPG"); getEnumIgnoreCase(Class enumClass, String enumName) 通过类返回一个枚举...imagesTypeEnum = EnumUtils.getEnum(ImagesTypeEnum.class, "JPG"); getEnumList(Class enumClass) 通过类返回一个枚举集合...imagesTypeEnum1 = " + imagesTypeEnum1) ); // imagesTypeEnum1 = JPG getEnumMap(Class enumClass) 通过类返回一个枚举...java.util.stream.Collectors; import org.apache.commons.lang3.EnumUtils; public enum EnvEnum {
而且 Java 要求必须先定义 enum 实例。 enum Color { //每个颜色都是枚举类的一个实例,并且构造方法要和枚举类的格式相符合。...由于Java 不支持多继承,所以枚举对象不能再继承其他类。...那么像枚举也是在JDK1.5中才引入的,又是怎么实现的呢? Java在1.5中添加了java.lang.Enum抽象类,它是所有枚举类型基类。提供了一些基础属性和基础方法。...from "Day.java" public abstract class com.javase.枚举类.Day extends java.lang.Enum....枚举类.Day$1); com.javase.枚举类.Day(java.lang.String, int, java.lang.String, com.javase.枚举类.Day$1); static
枚举类:就是对象的实例个数是确定的(例如:单例模式),也就说我们在创建枚举类的时候,会对构造器进行设置 一、自定义创建枚举类 ---- package com.atguigu.java1; public...//枚举类 enum Season1{ SPRING("spring", "春暖花开"), SUMMER("summer", "夏日炎炎"), AUTUMN("autumn",...;i++){ System.out.println(seasons[i]); } //2.valueOf(String name):要求传入的形参name是枚举类对象的名字,获取枚举对象。...//否则,报java.lang.IllegalArgumentException异常 String str = "WINTER"; Season1 sea = Season1.valueOf(str);...interface Info{ void show(); } //枚举类 enum Season1 implements Info{ SPRING("spring", "春暖花开"){
一个办法是用大写变量通过整数来定义 好处是简单,缺点是类型是int,并且仍然是变量 Enum可以把一组相关常量定义在一个class中,且class不可变,而且成员可以直接比较,这样这些相关常量就不会变化了 使用枚举类...Month.Sep , 9 #输出:Oct => Month.Oct , 10 #输出:Nov => Month.Nov , 11 #输出:Dec => Month.Dec , 12 自定义枚举类... 如果需要更精确地控制枚举类型,可以从Enum派生出自定义类 from enum import Enum, unique @unique #@unique装饰器可以帮助我们检查保证没有重复值...print(Weekday.Tue) #输出:Weekday.Tue print(Weekday['Tue']) #输出:Weekday.Tue,可用成员名称引用枚举常量...print(Weekday('03').value) #输出:03,根据value值获取枚举常量 print(day1 == Weekday('01')) #输出:
领取专属 10元无门槛券
手把手带您无忧上云