java编程枚举类型那些事!枚举类型定义和重写枚举的方法

什么是枚举类型

枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。

而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。

简单的枚举类型定义

假如你希望创建一个颜色库,你可以这样定义枚举类型

enum Color {red, green, yellow, black};

然后你就可以使用它

Color T = Color.red;
if (T == Color.red)
  System.out.println("i am red");
switch(T) {
 case red:
   System.out.println("i am red");
   break
}

定制枚举类型

在C/C++中,我们可以这样使用枚举变量

enum color {red,green};
enum color a = 1;// a is green

在Java中定义枚举类型的值

enum color {
 red(1),green(2);
 private final int number;
 color(int i) {
  this.number = i;
 }
 public getValue() {
  return this.number;
 }
}

然后使用 T.getValue() 便可获取绑定的值

重写枚举的方法

枚举类给我们提供的方法有,具体可以查看Enum.java

name, toString, valueOf //获取名字
equals //比较
ordinal //获取位置

实现接口

所有的枚举都继承自java.lang.Enum类。

由于Java 不支持多继承,所以枚举对象不能再继承其他类,但是可以实现接口

Test

enum number {
  zero(0),one(1),two(2);
  int n;
  number(int i) {
    this.n = i;
  }
  public int getValue(){
    return this.n;
  }
}
interface People_State {
  String getState();
  State_Enum ChangeState();
}
enum State_Enum implements People_State {
  normal("正常"), stop("停止");
  private final String state;
  State_Enum(String s) {
    this.state = s;
  }
  public String toString() {
    return state;
  }
  @Override
  public String getState() {
    return state;
  }
  @Override
  public State_Enum ChangeState() {
    if (this == normal)
      return stop;
    else
      return normal;
  }
}
public class Test_Enum {
  public static void main(String[] args) {
    number z = number.zero;
    State_Enum state = State_Enum.normal;
    System.out.println(z.getValue());
    System.out.println(z);
    System.out.println(number.one);
    switch (z) {
      case zero:
        System.out.println(0);
        break;
      case one:
        System.out.println(1);
        break;
      case two:
        System.out.println("2");
        break;
    }
    //equals
    if (z.equals(number.one)) {
      System.out.println("equal!");
    } else {
      System.out.println("unequal");
    }
    //valueOf
    System.out.println(number.valueOf("zero"));
    //ordinal
    System.out.println(z.ordinal()); //the index of values
    System.out.println(state.toString());
    state = state.ChangeState();
    System.out.println(state.getState());
  }
}

Output

0
zero
one
0
unequal
zero
0
正常
停止

总结

以上就是本文关于java编程枚举类型定义和重写枚举的方法的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Java编程long数据类型的使用问题、java编程基础之模仿用户登录代码分享等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

(0)

相关推荐

  • Java枚举的七种常见用法总结(必看)

    用法一:常量 在JDK1.5之前,我们定义常量都是:publicstaticfianl.....现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. Java代码 public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. Java代码 enum Signal { GREEN, YELLOW,

  • 三分钟快速掌握Java中枚举(enum)

    什么是枚举? 枚举是JDK5引入的新特性.在某些情况下,一个类的对象是固定的,就可以定义为枚举.在实际使用中,枚举类型也可以作为一种规范,保障程序参数安全.枚举有以下特点: Java中枚举和类.接口的级别相同. 枚举和类一样,都有自己的属性.方法.构造方法,不同点是:枚举的构造方法只能是private修饰,也就无法从外部构造对象.构造方法只在构造枚举值时调用. 使用enum关键字声明一个枚举类型时,就默认继承自Java中的 java.lang.Enum类,并实现了java.lang.Seriab

  • Java(enum)枚举用法详解

    概念 enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值.以 Color 枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2 枚举的好处:可以将常量组织起来,统一进行管理. 枚举的典型应用场景:错误码.状态机等. 枚举类型的本质 尽管enum 看起来像是一种

  • 详解Java中的 枚举与泛型

    详解Java中的 枚举与泛型 一:首先从枚举开始说起 枚举类型是JDK5.0的新特征.Sun引进了一个全新的关键字enum来定义一个枚举类.下面就是一个典型枚举类型的定义: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类. 而这些类都是类库中Enum类的子类(Java.lang.Enum).它们继承了这个Enum中的许多有用的方法.我们对代码编译之后发现,编译器将 enu

  • Java实现单例模式之饿汉式、懒汉式、枚举式

    单例模式的实现(5种) 常用: 饿汉式(线程安全,调用效率高,但是不能延时加载) 懒汉式(线程安全,调用效率不高,可以延时加载) 其他: 双重检测锁式(由于jvm底层内部模型原因,偶尔会出问题,不建立使用) 静态内部类式(线程安全,调用效率高,但是可以延时加载) 枚举单例(线程安全,调用效率高,不能延时加载) 饿汉式单例具体代码如下: package com.lcx.mode; /** * * 饿汉式单例,不管以后用不用这个对象,我们一开始就创建这个对象的实例, * 需要的时候就返回已创建好的实

  • java编程枚举类型那些事!枚举类型定义和重写枚举的方法

    什么是枚举类型 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中. 而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似.不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围. 简单的枚举类型定义 假如你希望创建一个颜色库,你可以这样定义枚举类型 enum Color {red, green, yellow, black}; 然后你就可以使用它 Color T = Color.red; if (T

  • Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法.分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序.例如: String[] arrays = new String[] { "gyu", "sdf", "zf", "大同", "收到", "地方", "三等分"

  • 详解Java编程规约(命名风格、常量定义、代码格式)

    命名风格 1.[强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name / $name / name_ / name$ / name__ 2.[强制]代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式. 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义.注意,纯拼音命名方式更要避免采用. 正例:renminbi / alibaba / taobao / youku / hangzhou 等国际通用的名称,可视

  • Java编程获取文件列表及子文件目录的方法(非递归)

    废话不谈,直接进入正题,理解见代码注释. // 非递归 public List<String> scanFiles(String path) { List<String>filePaths = new ArrayList<String>(); LinkedList<File> list = new LinkedList<File>(); File dir = new File(path); File[] file = dir.listFiles(

  • Java编程long数据类型的使用问题

    在Java编程中经常遇到一些整数类型的使用问题,下面我们来看看长整形数据使用问题. 今天在写一个java线程的时候,想让线程休眠720小时候继续执行,代码如下: long runSperiod = 720 * 60 * 60 * 1000; Thread.sleep(runSperiod) 启动线程测试的时候,发现线程并没有按照预想的720小时候后执行,而是不停在执行,最后跟踪代码发现 runSperiod 的值时负数.仔细研究后发现,java在处理几个数相乘时,如果几个数都是 int 类型,那

  • java编程是做什么的

    我们在对计算机下达指令时,需要用电脑能听懂的语言,这种就是编程的语言.在类型上分为两种:面向对象.面向过程.一个是下达指令,另一种是我们常说的做开发的工作,两者在实际运用时经常结合在一起.下面我们就java编程进行全面的说明.类型讲解,并带来常见的知识点和工具分享. 1.编程说明 用类似英语的语言,和电脑对话,指挥电脑为你工作. 你指挥英国人,要用英语给他下命令,指挥计算机,那肯定要用计算机懂得语言,这个语言就叫Java Python C#. 2.编程语言类型 (1)编程语言分面向对象和面向过程

  • 浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类型时,实质上您定义出来的类型继承自 java.lang.Enum 类,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被默认为 final,所以您无法改变它们,它们也是 static 成员,所以您可以透过类型名称直接使用它们,当然最重要的,它们都 是公开的(public). 举个

  • Java编程枚举类实战代码分享

    本文句句走心,希望老铁们用心阅读并实战,一定会有收获的. 摘要:本文主要讨论生产环境中枚举类的使用.首先会通过对枚举类概念进行简单的介绍,引入我们讨论的主题:然后就直接进入实战部分,本文只会介绍在实战中用的比较多,也比较常用的情况,所以希望老铁可以用心体会并实践,最终化为己有:最后会大致在对枚举的 API 做了一个简单的介绍.其余没有介绍的内容,基本上在我们的生产环境中极少用到,如果有兴趣的可以自己在深入研究. 枚举 概念:枚举类型是 Java 5 中新增特性的一部分,它是一种特殊的数据类型,它

  • 讲解C++中的枚举类型以及声明新类型的方法

    C++枚举类型 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内.声明枚举类型用enum开头.例如: enum weekday{sun, mon, tue, wed, thu, fri, sat}; 上面声明了一个枚举类型weekday,花括号中sun, mon, -, sat等称为枚举元素或枚举常量.表示这个类型的变量的值只能是以上7个值之一.它们是用户自己定义的标识符. 声明枚举类

  • java实现相同属性名称及相似类型的pojo、dto、vo等互转操作

    已应用于实际项目: 1.thrift对象与dto之间的互转 2.pojo与dto之间的互转 3.pojo与vo之间的互转 1.核心转换工具类,对特别复杂类型不做处理,因为业务场景还未覆盖 package littlehow.convert; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.Method; import

随机推荐