# 枚举类型 (JAVA编程思想-学习笔记)

关键字enum可以将一组具名的值的有限集合创建为一种新的类型。

创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum。

可以同时实现一个或多个接口。

1、基本特性:

values(),可以遍历enum实例,返回enum实例的数组,数组中的元素严格保持其在enum中声明的顺序。

ordinal(),返回一个int值,这是每个enum实例在声明时的次序,从0开始。

name(),返回enum实例声明时的名字。

getDeclaringClass(),所属的enum类。

每个enum元素都是enum类型的static final实例。

2、向enum中添加新方法:

添加自定义方法时,必须在enum实例序列的最后添加一个分号。同时,java要求必须先定义enum实例。

enum中的构造器与方法和普通的类没有区别,除了有少许限制外,enum就是一个普通的类。

public enum OzWitch{

// Instances must be defined first, before methods;

WEST("Miss Gulch"),

NORTH("Glinda"),

EAST("Wicked"),

SOUTH("Good);

private String description;

// Constructor must be package or private access;

private OzWitch(String description){

this.description = description;

}

public String getDescription(){

return description;

}

}

// Compiled from 'OzWitch.java'

abstract class OzWitch extends java.lang.Enum{

public static final OzWitch WEST;

public static final OzWitch NORTH;

public static final OzWitch EAST;

public static final OzWitch SOUTH;

...

}

3、常量相关的方法

Java的enum有一个有趣的特性,即允许为enum实例编写方法,从而为每个enum实例赋予各自不同的行为。

要实现常量相关的方法,你需要为enum定义一个或多个abstract方法,然后为每个enum实例实现该抽象方法。

public enum ConstantSpecificMethod{

CLASSPATH{

String getInfo(){

return System.getenv("CLASSPATH");

}

},

VERSION{

String getInfo(){

return System.getenv("java.version");

}

};

abstract String getInfo();

}

例子中,每个enum实例具备自己独特的行为,enum实例似乎被当作其"超类"ConstantSpecificMethod来使用,

在调用getInfo()方法时,体现出多态的行为。

java enum class_JAVA 枚举类型相关推荐

  1. Java基础笔记 – 枚举类型的使用介绍和静态导入

    Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由 arthinking 发表于404 天前 ⁄ Java基础 ⁄ 暂无评论 ⁄ 被围观 1,433 views+ 1.枚举(Enum): JD ...

  2. java枚举对象作用_浅析Java编程中枚举类型的定义与使用

    定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...

  3. java分号_java枚举类型中分号的用法

    在java中写枚举类型的对象时,发生一个十分诡异的情况 public enum SeckillStatEnum { ;在没有写内容的时候,这个分号可有可无.但是如果里面写有方法,这个分号就必须带上. ...

  4. java 枚举类型enum ppt,java中的枚举类型——Enum

    日常java编程中,常见用一些静态常量表示一些状态码,特殊含义的标志等,例如: 1 2 3 4 5public class A{ public static final int STATUS_SUCC ...

  5. java基础(十一) 枚举类型

    枚举类型Enum的简介 1.什么是枚举类型 枚举类型: 就是由一组具有名的值的有限集合组成新的类型.(即新的类). 好像还是不懂,别急,咱们先来看一下 为什么要引入枚举类型 在没有引入枚举类型前,当我 ...

  6. 在java中关于枚举类型的特性_java枚举类型小结

    JDK5.0之前,我们一般选择使用 interface 来保存常量组,以此来弥补 JDK 中没有枚举类型的缺陷,从JDK5.0开始,Sun引进了一个全新的关键字 enum 来定义一个枚举类.同inte ...

  7. java previous_java – 在枚举类型上实现`next`和`previous`的最好方法是什么?

    假设我有一个枚举: enum E { A, B, C; } 如lucasmo by lucasmo所示,枚举值按照它们被初始化的顺序存储在静态数组中,您可以稍后用E.values()检索(克隆)此数组 ...

  8. Java工作笔记-枚举类型反射

    这里枚举类型有自己的反射方式: 这里我先总结下逻辑: 1. 通过getEnumConstatnts返回目前枚举中存在的对象. 2. 通过getMehod获取方法. 3. 最后用这个对象调用其方法. 程 ...

  9. Java中的枚举类型学习

    一:枚举的引入 enum全称enumeration,是JDK1.5中引入的新特性,存放在java.lang包中.下面就平时的学习和使用过程中用到的进行总结: 枚举(enum),是指一个经过排序的,被打 ...

最新文章

  1. Linux环境下的网络编程
  2. 朱敏:40岁创业如何成就绝代明星?(五)
  3. socks5   代理
  4. Common Lisp 操作Mysql
  5. 【LCT】网络(luogu 2173/ZJOI2011)
  6. javascript 刷新技巧
  7. linux命令——scp 两台linux机器间文件或目录传输
  8. OSI七层网络结构图与TCP/IP五层网络结构图
  9. 日本最后一刻阻拦鸿海收购夏普:质疑董事私心
  10. android机器人聊天软件,虚拟男友聊天机器人
  11. SD和SDHC和SDXC卡的区别是什么
  12. CCRC信息安全服务资质--风险评估申请
  13. 饭店点餐系统的需求分析_酒店评论的情绪分析主题建模
  14. 华为实验21-OSPF的DR与BDR
  15. 通过动态NAT实现内网访问外网,通过静态NAT实现外网访问内网的WEB服务器
  16. 计算机用户系统软件,系统软件
  17. 150本畅销书已选好,快来认领!!
  18. tesla 显卡在ubuntu下安装显卡驱动log in loop 不能登陆的问题
  19. Spring-@Bean
  20. 小程序开发报错 使用wx.reLaunch跳转报错 Expected updated data but get first rendering data如何解决 ???

热门文章

  1. 判断数字中是否有且仅有一位数字为n的整数
  2. Linux安装BCM4331驱动包下载
  3. IIC总线式驱动开发(mpu6050)(二)
  4. 电子科技大学格拉斯哥学院电子信息导论结课研讨报告
  5. html画布标签的使用
  6. Dos导出Oracle数据库
  7. 面试爱奇艺,竟然挂在第 5 轮……
  8. Oracle 12c数据库定时备份和清理脚本
  9. plt. bar添加数据标签
  10. Deepin+Docker+Redis5.0 安装 Redis集群