`
rayln
  • 浏览: 430507 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java枚举类型

    博客分类:
  • Java
 
阅读更多
转载: http://www.cnblogs.com/Fskjb/archive/2009/08/03/1537917.html

public class TestEnum {
	/* 最普通的枚举 */
	public enum ColorSelect {
		red, green, yellow, blue;
	}

	/* 枚举也可以象一般的类一样添加方法和属性,你可以为它添加静态和非静态的属性或方法,这一切都象你在一般的类中做的那样. */
	public enum Season {
		// 枚举列表必须写在最前面,否则编译出错
		winter, spring, summer, fall;

		private final static String location = "Phoenix";

		public static Season getBest() {
			if (location.equals("Phoenix"))
				return winter;
			else
				return summer;
		}
	}

	/* 还可以有构造方法 */
	public enum Temp {
		/*
		 * 通过括号赋值,而且必须有带参构造器和一属性跟方法,否则编译出错 赋值必须是都赋值或都不赋值,不能一部分赋值一部分不赋值
		 * 如果不赋值则不能写构造器,赋值编译也出错
		 */
		absoluteZero(-459), freezing(32), boiling(212), paperBurns(451);

		private final int value;

		public int getValue() {
			return value;
		}

		// 构造器默认也只能是private, 从而保证构造函数只能在内部使用
		Temp(int value) {
			this.value = value;
		}
	}

	public static void main(String[] args) {
        /*
         * 枚举类型是一种类型,用于定义变量,以限制变量的赋值 赋值时通过"枚举名.值"来取得相关枚举中的值
         */
        ColorSelect m = ColorSelect.blue;
        switch (m) {
        /*注意:枚举重写了ToString(),说以枚举变量的值是不带前缀的
          *所以为blue而非ColorSelect.blue
          */
        case red:
            System.out.println("color is red");
            break;
        case green:
            System.out.println("color is green");
            break;
        case yellow:
            System.out.println("color is yellow");
            break;
        case blue:
            System.out.println("color is blue");
            break;
        }
        System.out.println("遍历ColorSelect中的值");
        /*通过values()获得枚举值的数组*/
        for (ColorSelect c : ColorSelect.values()) {
            System.out.println(c);
        }
		System.out.println("枚举ColorSelect中的值有:"+ColorSelect.values().length+"个");
		/*ordinal()返回枚举值在枚举中的索引位置,从0开始*/
		System.out.println(ColorSelect.red.ordinal());//0
		System.out.println(ColorSelect.green.ordinal());//1
		System.out.println(ColorSelect.yellow.ordinal());//2
		System.out.println(ColorSelect.blue.ordinal());//3
		
		/*枚举默认实现了java.lang.Comparable接口*/ 
		System.out.println(ColorSelect.red.compareTo(ColorSelect.green));
		
		System.out.println(Season.getBest());
        
        for(Temp t:Temp.values()){
            /*通过getValue()取得相关枚举的值*/
            System.out.println(t+"的值是"+t.getValue());
        }

    }
}
分享到:
评论

相关推荐

    Java枚举类型Enum的用法

    Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...

    理解java枚举类型

    Java枚举类型是Java语言中的一种特殊的类,用于定义一组固定的常量集合。它在Java中扮演着重要的角色,提供了一种安全、类型化的常量表示方式,比传统的final static变量更具有优势。理解Java枚举类型对于编写高质量...

    Java枚举类型.pdf

    总结起来,Java枚举类型是一个强大的工具,它可以替代`static final`常量来表示一组固定的值,提供类型安全、易于维护的代码。通过枚举,我们可以更方便地管理常量,减少错误,并增加代码的灵活性。枚举是Java中一个...

    简单总结java枚举类型

    Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...

    java枚举类型说明

    ### Java枚举类型详解 #### 一、引言 在Java编程语言中,枚举(Enum)作为一种重要的数据类型,在程序设计中扮演着不可或缺的角色。本文将深入探讨Java枚举类型的特性和用法,并通过具体实例说明其优势所在。枚举...

    JAVA枚举类型的用法详解

    下面我们将深入探讨Java枚举类型的常见用法。 首先,枚举类型在本质上等同于定义了一组静态常量。创建枚举类型的语法如下: ```java public enum Belle { para1, para2, para3, para4; } ``` 这会创建一个名为`...

Global site tag (gtag.js) - Google Analytics