java枚举小笔记

原创 2017年01月03日 15:27:25

注意点:

  • 1。所有创建的枚举类型都扩展于 java.lang.Enum. Enum 是在J2SE 5.0 里定义的一个新类, 它本身不是枚举类型.在创建枚举类型时,必须用enum 关键字,不能直接地定义一个继承Enum的类来创建一个枚举类型,尽管所有创建的枚举类型实际上都是Enum 的子类.
  • 2。枚举类型里定义的每一个值都是枚举类型的一个实例,缺省时都将映射到Enum(String name, int ordinal) 构造函数中.枚举类型可以使用参数为定义一些自己的构造函数。
    另外要强调的两点:
    一是这些枚举类型的构造函数都是私有的.它是不能被其它的类或者其它的枚举类型调用的. 而且这个私有修饰符是由编译器自动加的,如果我们定义这些构造函数时,在前面加上public 修饰符, 就会导致编译错误,
    二是变量定义必须在枚举类型值定义之后
  • 3。枚举类型每一个值都是public, static and final的.也就是说,这些值是唯一的而且一旦定义了是不能被重写或修改.而且尽管在枚举类型每一个值声明时没有出现static关键字,实际上值都是静态的, 而且我们不能在值前面加上static, public,final 修饰符
  • 4。Switch语句里使用枚举类型时,一定不能在每一个枚举类型值的前面加上枚举类型的类名(case后面的值),否则编译器就会报错
  • 5。在J2SE 5.0 的java.util 程序包中提供两个新类:EnumMap 和 EnumSet,这两个类与枚举类型的结合应用可使以前非常繁琐的程序变得简单方便.EnumMap 类提供了java.util.Map 接口的一个特殊实现,该接口中的键(key)是一个枚举类型
  • 6。特定于常量的类主体 :
    提到枚举类型可以定义自己的函数,其实更进一步,枚举类型的每一个值都可以实现枚举类型里定义的抽象函数

enum Size {
Small(0.8),
Medium(1.0),
Large(1.2);
private double pricingFactor; // 符合2.2的要求,变量定义必须在枚举类型值定义之后
Size(double p) {
pricingFactor = p;
}
public double getPricingFactor() {
return pricingFactor;
}
}

enum的预定义方法
完整的方法集合(E 表示枚举类型自身):
* public int compareTo(E e)
* public boolean equals(Object o)
* public final Class getDeclaringClass()
* public int hashCode()
* public String name()
* public int ordinal()
* public String toString()
* public static

版权声明:本文为博主原创文章,未经博主允许不得转载。

浅谈在Java开发中的枚举的作用和用法

枚举,是指一个经过排序的、被打包成一个单一实体的项列表。一个枚举的实例可以使用枚举项列表中任意单一项的值。 在枚举出现之前,如果想要表示一组特定的离散值,往往使用一些常量。例如: package co...
  • u014527058
  • u014527058
  • 2016年10月07日 20:02
  • 20900

java 枚举——java中枚举的运用和使用场景

转自:http://blog.csdn.net/yehui928186846/article/details/51426415 基本特性: 1,enum关键字  枚举enum是同class,int...
  • pangesange
  • pangesange
  • 2017年01月16日 13:40
  • 2107

关于java枚举使用和理解。

前言在介绍枚举之前,先说说另外一个名词:[魔法数字]。 魔法数字,是指在代码中直接出现的数值。 如:user.setStatus(1);其中的数值1即为[魔法数字],你很难直观的理解这个1代表的含...
  • u014387604
  • u014387604
  • 2015年10月22日 16:53
  • 587

JAVA 枚举使用详解

问题引入:如何限制用户输入class Student{ private String name; // 考试等级 private String grade; //等级只能是AB...
  • guanhang89
  • guanhang89
  • 2016年08月20日 18:41
  • 1965

Java学习整理系列之Java枚举类型的使用

定义枚举类型其实就是在定义一个类,只不过很多细节由编译器帮你补齐了,所以,某种程度上enum关键词的作用就像是class或interface. 当使用enum定义枚举类型时,实际上所定义出来的类型是...
  • Sup_Heaven
  • Sup_Heaven
  • 2014年06月27日 19:47
  • 43436

Java 枚举:实现接口

http://blog.csdn.net/veryitman/article/details/7945949 所有的枚举类都继承自 Enum,因为 Java 不支持多继承,所以枚举无法继承其...
  • caolaosanahnu
  • caolaosanahnu
  • 2014年06月23日 14:16
  • 1311

【从头开始学Java】Java的继承(枚举、反射)

五、参数数量可变的方法 在Java中使用省略号...的形式来创建参数数量可变的方法。 public static double max( double... values); 调用方式:1> max...
  • u014482758
  • u014482758
  • 2015年12月28日 13:15
  • 1005

Java 中对于枚举双值的使用

转成键值对或者是map 的形式; 键值对的类 public class Kav { /** * 键 */ private String key; /** * 值 */ pr...
  • wanghang88
  • wanghang88
  • 2016年07月22日 09:15
  • 4214

java 枚举 循环遍历以及一些简单常见的使用

什么时候想用枚举类型: 有时候,在设计一个java model对象的时候,你需要一些具体的常量字符串之类的东西,这个东西又没必要跟整个项目的全局常量放在一起,就放在model的java文件里面是最合适...
  • qq_27093465
  • qq_27093465
  • 2016年06月18日 16:04
  • 17317

java推荐使用枚举定义常量

假如有一笔业务需要审核,审核状态分:未审核,审核中,审核通过,审核不通过。我们在程序里是否可以直接这么写: if(state==1){//1代表未操作 //操作 }else{ //...... } 将...
  • scandly_java
  • scandly_java
  • 2016年06月15日 16:36
  • 15534
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java枚举小笔记
举报原因:
原因补充:

(最多只允许输入30个字)