java枚举类型集合(java实体类中枚举怎么定义)

发布时间:2022-11-16

本文目录一览:

  1. java枚举类型
  2. Java中vector集合枚举,和枚举类型enum有什么区别吗?
  3. Java枚举类型怎么使用
  4. 如何使用java中的枚举类
  5. java什么是枚举类型
  6. 怎么使用java中的枚举方法

java枚举类型

枚举是一种特殊的数据类型,和类(class)是同一个级别。例如定义一个类 Test,会有一个源文件 Test.java,编译后会生成 Test.class。同样地,定义一个枚举类型 Myenum,编译后也会生成 Myenum.class作用:存储一系列数据,保证数据的有效取值范围。 通常用到的地方是传递接口参数时,为了保证传递一个合适的值,而不需要额外验证这个值是否合法。这里说的“接口”不是 interface,而是指开发中不同层之间的调用。

Java中vector集合枚举,和枚举类型enum有什么区别吗?

现在枚举已经不是主流用法了,但还是有必要了解一下。枚举不是类,可以看作是一个集合。例如你代码中的 weekday,现在大部分程序员用枚举来定义常量,比如下面这段代码:

enum Signal {
    GREEN, YELLOW, RED
}
public class TrafficLight {
    Signal color = Signal.RED;
    public void change() {
        switch (color) {
            case RED:
                color = Signal.GREEN;
                break;
            case YELLOW:
                color = Signal.RED;
                break;
            case GREEN:
                color = Signal.YELLOW;
                break;
        }
    }
}

上面的枚举主要用于定义常量。

Java枚举类型怎么使用

枚举(enum)类型是 Java 5 新增的特性,它是一种新的类型,允许用常量来表示特定的数据片段,而且全部都以类型安全的形式来表示。

1、常量的使用

在 JDK1.5 之前,我们定义常量的方式通常是:

public static final ...

有了枚举之后,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 总结:

  • 枚举的本质是类。在没有枚举之前,我们也可以通过 Java 的基本编程手段来实现类似枚举的功能。
  • 枚举屏蔽了枚举值的类型信息,不像 public static final 定义变量时必须指定类型。
  • 枚举是用来构建常量数据结构的模板,这个模板是可以扩展的。
  • 枚举的使用增强了程序的健壮性。例如在引用一个不存在的枚举值时,编译器会报错。
  • 枚举的更多用法还需要在开发中不断探索。Java5、Java6 增加了不少新特性,技术在升级,作为 Java 程序员也需要不断学习,否则别人用新特性写的代码你看不懂,那会很郁闷。

2、枚举在 Java 家族中只占了很小的一块比重

因此在项目中使用枚举的地方不是很多。毕竟一个项目是很多人开发维护的,使用陌生的东西会给其他同事造成阅读困难。所以常量大都是用 public static final 来定义的。

如何使用java中的枚举类

static final 通常跟的是一个 int 类型的常数,所以有时候可以用 int 型代替枚举。 在有些时候需要输出这个枚举量的名字(比如 January),上面的方法输出的是 int 值,用类的话可以把名字一起输出。 总的来说:

  • 前者(static final int)消耗资源比较少。
  • 后者(枚举)更符合枚举的定义。 枚举的确是一个类。在 JDK1.4 及以前,没有 enum 这个关键字,那时候都是使用类来模拟的。在《Java编程思想》第三版的章节 8.1.3 中介绍了一种写法。JDK5 以后引入了 enum,本质上就是一个类,所以可以被继承。总体思路和第三版中的写法类似,只是换了个名字(详见《Java编程思想》第四版第19章)。

补充:早期的枚举写法示例

public final class Month {
    private String name;
    private Month(String nm) {
        name = nm;
    }
    public String toString() {
        return name;
    }
    public static final Month
        JAN = new Month("January"),
        FEB = new Month("February"),
        MAR = new Month("March"),
        APR = new Month("April"),
        MAY = new Month("May"),
        JUN = new Month("June"),
        JUL = new Month("July"),
        AUG = new Month("August"),
        SEP = new Month("September"),
        OCT = new Month("October"),
        NOV = new Month("November"),
        DEC = new Month("December");
    public static final Month month[] = {
        JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
    };
    public static final Month number(int ord) {
        return month[ord - 1];
    }
    // main
    public static void main(String args[]) {
        Month m = Month.JAN;
        System.out.println(m);
        m = Month.number(12);
        System.out.println(m);
        System.out.println(m == Month.DEC);
        System.out.println(m.equals(Month.DEC));
        System.out.println(Month.month[3]);
        System.out.println(Month.APR);
    }
}

java什么是枚举类型

你可以理解为枚举也是一个类,但是这个类只有在内部声明的几个对象,不可新建对象。当你想使用枚举类的对象时,就像使用类的静态资源一样。

怎么使用java中的枚举方法

枚举可以理解为一个有限值的集合。一个枚举类型的变量,它的值只可能是类型值中的一个。 例如:

Drection drection; // 此类型的变量

变量的值应该是类型里边所列的值中的一个。如果单写 WEST,根本不知道它是什么,所以要加类名限定,即 Drection.WEST。于是,对一个枚举变量赋值的样子就像这样:

if (drection == Drection.WEST) return true;
String west = "WEST";
drection.toString().equals(west) return true;