java.lang.Enum枚举类型
2016-12-28 11:31
447 查看
前言
上一篇文章介绍的是常用类中的String,这一篇总结一下有关枚举类都有哪些有意思的知识
枚举类型
enum的全称为enumeration,是JDK1.5才引入的特性,存放在java.lang包中。一、使用情况
当一个类型他是有一些可并列的,不变化的元素组成时,这些元素就像是导游,指引程序走向不同的地方,用枚举是比较好的选择简单的举个例子:男人、女人;星期一到星期日;春夏秋冬等等这样的元素都可以用枚举类来实现
当然我们也不可以通过别的方法来实现,就好比如果我定义了一些常量,也同样可以达到效果,但是很多个变量是零散的独立的,没有范畴和管理的概念,但是枚举就很好的完善了这一点,在这一个范围内所需要的东西就都放到一个枚举类中,方便对整体的控制。
在查资料的时候,看到了这么一句话:枚举提供了一种类型管理的组件,让面向对象的体系更加完善,使得一些类型的管理既可配置化,并可以管理。觉得总结的很精辟
2.DEMO
下边这个例子包含了枚举的声明和一些常用的方法public class EnumTest { // public enum Color{ // RED,BLUE,BLACK,YELLOW,GREEN // } enum Color{ RED(255,0,0),BLUE(0,0,255),YELLOW(255,255,0),GREEN(0,255,0); private Color(int rv,int gv,int bv){ this.redValue=rv; this.greenValue=gv; this.blueValue=bv; } public String toString(){ return super.toString()+"("+redValue+","+greenValue+","+blueValue+")"; } private int redValue; private int greenValue; private int blueValue; } public static void main(String orgs[]) { Color color=Color.RED; System.out.println(color);//调用了toString()方法 System.out.println(Color.RED.ordinal());//在枚举类中的顺序 System.out.println(Color.RED.compareTo(Color.BLUE));//返回顺序差 Color[] colors=Color.values();//静态方法,返回一个包含全部枚举值的数组 for(Color c:colors){ System.out.println(c); } switch(color){ case RED:System.out.println("its red");break; case BLUE:System.out.println("its blue");break; case GREEN:System.out.println("its green");break; } }
3.知识要点
enum很像特殊的类,实际上enum声明定义的类型就是一个类Color枚举类就是class,而且是一个不可以被继承的final类,其枚举值都是静态常量,可以通过 Color c=Color.RED获得实例
枚举类的构造器只是在构造枚举值的的时候被调用
构造器只能是private。这样可以保证外部代码无法新构造枚举类的实例。Color color=new Color(100,200,300);这样是错误的,有点像单例模式
总结
其实在项目中还没有用过,先作为了解,以后用的时候在好好研究一下~相关文章推荐
- java.lang.Enum枚举类型
- Java enum 枚举类型
- java关键字之enum枚举类型浅析
- Java中Enum类型的序列化及类升级不建议用枚举的原因
- 对Java中枚举类型Enum的理解
- java enum 枚举类型
- 高阶Java枚举类型enum使用详解
- 高阶Java枚举类型enum使用详解
- 全面解读Java中的枚举类型enum的使用
- Java enum 枚举类型7种用法
- Java基础复习:枚举(java.lang.Enum<E>)
- java enum 一个枚举类型
- 枚举Java 语言中 Enum 类型的使用介绍
- java中关于枚举enum类型的用法
- Java枚举类型enum的原理
- 高阶Java枚举类型enum使用详解
- JAVA入门基础--浅谈枚举Enum类型
- Java中的Enum枚举类型总结
- Java学习笔记21 枚举类型enum、Enu…
- Java enum枚举类型基础