java枚举类

Wesley13
• 阅读 675

使用enum声明,默认直接继承了java.lang.Enum类,而不是Object类;

枚举类的对象是固定的,实例个数有限,不可以再new( ),枚举对象后可以跟()。

枚举元素必须位于枚举类体中的最开始部分,枚举元素后要有分号与其他成员分隔。

枚举类的构造方法的权限修饰符默认是private;

一旦枚举对象后面加上{},那么该对象实际是枚举匿名内部类对象;

所有枚举类都提供一个静态的values()方法(返回该枚举类所有对象组成的数组),便于遍历所有枚举对象;

所有枚举类都提供一个静态的valueOf(String name)方法, 返回枚举类中对象名等于 name的对象。

Eg****:public enum Color{

       RED(), GREEN(){}, BLUE{};

}

package reviewDemo;

//枚举

enum Color{

    Green,Blue,Yellow;

    @Override

    public String toString() {

        String ret = super.toString();

        switch (this) {

        case Green:

            ret = "绿色";

            break;

        case Blue:

            ret = "蓝色";

            break;

        case Yellow:

            ret = "黄色";

            break;

        default:

            break;

        }

        return ret;

    }

}

class Personp{

    Color c = Color.Blue;

    void show(){

        System.out.println(c);

    }

}

public class Demo18 {

    public static void main(String[] args) {

        Color []color = Color.values();

        for (Color c : color) {

            System.out.println(c);

        }

        new Personp().show();

    }

}

输出:

绿色

蓝色

黄色

蓝色

枚举类覆写接口抽象方法的两种方式:

在枚举类中实现接口的抽象方法;

在枚举匿名内部类中实现接口的抽象方法;

interface I{

    void show();

}

enum Color implements I{

    RED(){

    public void show(){

        }

    }, GREEN{

    public void show(){

        }

    }, BLUE{

    public void show(){

        }

    };

}

enum Color implements I{

    RED(), GREEN, BLUE;

    public void show() {

    }

}

我的总结:

**枚举不可以new();**即便是反射也不可以!

备注:一个类如果没有构造方法,那么一定有相对应的某个方法可以获取对象!

点赞
收藏
评论区
推荐文章
学妹问我Java枚举类与注解,我直接用这个搞定她!
很多人问我学妹长什么样,不多说上图吧!(https://shimo.im/docs/9GTP6XrJg9J88cJD/)@一、枚举类类的对象只有有限个,确定的.我们称此类为枚举类.说明:1.类的对象只有有限个,确定的。如:星期:Monday(星期一)、......、Sunday(星期天)性别:Man(男)、Woman(女)季节:Sp
Easter79 Easter79
3年前
tornadofx演示分形图的绘制
枚举类中有抽象方法、有构造函数,每个值继承该方法实现自己的业务行为逻辑。combobox绑定枚举类。togglegroup包裹radiobutton,利用枚举类的值批量生成radiobutton查看演示:https://www.bilibili.com/video/av60656281/(https://www.oschina.net/actio
Wesley13 Wesley13
3年前
java枚举
https://www.cnblogs.com/hyl8218/p/5088287.html摘抄并自查语法(定义)创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum类的子类。枚举类符合通用模式ClassEnum<EextendsEnum<E,而E表示枚举类型的名称。枚举类型的每一
Wesley13 Wesley13
3年前
java枚举类型
java枚举类型enum枚举类型是java5新增特性的一部分,是一种特殊的数据类型(既是一种类类型但是又比类类型多些特殊的约束)枚举定义的方式:publicenumDay{MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY}定义
lucien-ma lucien-ma
3年前
Java 实用类
实用类枚举MathRandomStringStringBuffer日期类枚举枚举(Enum)是一种有确定取值区间的数据类型,它本质上是一种类,具有简洁、安全、方便等特点。可以这样理解,枚举的值被约束到一个特定的范围,只能取这个范围以内的值。我们为什么要用枚举呢?我们在描述对象的一些属性特征时,可选择的值是一个特定范围的,不能随便定义。比如性别只
Wesley13 Wesley13
3年前
java枚举类单例示例
publicclassSingleton{   //私有化构造函数   privateSingleton(){}    //定义一个静态枚举类   staticenumSingletonEnum{       //创建一个枚举对象,该对象先天为单例       INSTANCE;   
Wesley13 Wesley13
3年前
Java枚举的小知识点
enum是jdk1.5引入的,使用它可以创建枚举类型,就像使用class创建类一样。enum关键字创建的枚举类型默认是java.lang.Enum(一个抽象类)的子类用法1常量一般定义常量都是publicstaticfinal…,现在可以把相关常量都放在一个枚举类里,而且枚举比常量提供更多方法1.enumsea
Wesley13 Wesley13
3年前
Java枚举类使用
用法一:常量在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 publicenumColor{RED,GREEN,BLANK,YELLOW}用法二
Wesley13 Wesley13
3年前
Java分享笔记:自定义枚举类 & 使用enum关键字定义枚举类
  在JDK1.5之前没有enum关键字,如果想使用枚举类,程序员需要根据Java语言的规则自行设计。从JDK1.5开始,Java语言添加了enum关键字,可以通过该关键字方便地定义枚举类。这种枚举类有自己的程序编写规则,并且具有一些特殊方法。  下面是笔者分别针对自定义枚举类和enum枚举类的程序设计。\1\自定义枚举类
小万哥 小万哥
10个月前
深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
C枚举枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。要创建枚举,请使用enum关键字(而不是class或interface),并用逗号分隔枚举项:csharpenumLevelLow,Medium,High您可以使用点语法访问枚举项:csha