文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-05-30 23:41

关注

这篇文章将为大家详细讲解有关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

0zeroone0unequalzero0正常停止

关于“java中枚举类型定义和重写枚举的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯