您的位置:首页 > 编程语言 > Java开发

java.lang.Enum枚举类型

2016-12-28 11:31 375 查看

前言

  

  上一篇文章介绍的是常用类中的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);这样是错误的,有点像单例模式

总结

其实在项目中还没有用过,先作为了解,以后用的时候在好好研究一下~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: