?
?
? ???1. 常规使用 ? ? ? ?1.1 枚举值用于表示常量class="java" name="code">/** * Copyright (c) 2013 by www.futeng.org * * @{#} @Size.java Create on @2013-9-3 @下午10:31:22 */ package org.futeng.java.demo.enums; /** * @author <a href="mailto:ifuteng@gmail.com">futeng</a> */ public enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE, INCREDIABLE, IMPOSSIBLE, FAKE }?? ? ?? ? ? ??1.2 枚举的比较可直接使用“==”符号 ? ? ? ? ? ?[Sweet] 枚举类型是个特殊的类(想想接口也是一种特殊的类,其实特殊的意思就是不规范),为了能更加简单直观的表示常量,实现JDK的码农们把枚举给封装成一种特殊的“基本变量”了。如int基本类型,在比较是否相等的时候,直接 if( num == 3 ) 就轻松搞定了,现在枚举也是享受这样的福利了。而一般类如String值的比较,还是需要调用equals方法(内部会去逐个比较字符串中的每个字符是否都相等,而多数的类比较是需要你自己覆写equals方法的)。 ?
/** * Copyright (c) 2013 by www.futeng.org * * @{#} @SizeTest.java Create on @2013-9-3 @下午11:35:20 */ package org.futeng.java.demo.enums; /** * @author <a href="mailto:ifuteng@gmail.com">futeng</a> */ public class SizeTest { public static void main(String[] args) { Enum<Size> yourCup = Size.SMALL; if(yourCup == Size.LARGE) { System.out.println("Nice..."); } else { System.out.println(Size.LARGE+" will be better :)"); } } }? ? ? ?? 2. 添加 数据域(fields)和方法(methods) ? ? ? ??[Sweet]?类的作用是竟可能的去模拟现实世界中的物体,例如程序猿定义一个People类,他是想用这个类把真实世界的“人”这个物体或者说概念在计算机中表示出来。为了能让这个People类尽可能的去接近猿媛心目中的“人”,于是可能会为这个类添加姓名、年龄等数据域用来存储关于“人”的一些固有信息,还有些邪恶的猿媛会添加“cup”这个域,但是男士又不需要,所有子类就出现了。另外还可以为People类添加些动作,这样“人”就更丰满了。 ?
/** * Copyright (c) 2013 by www.futeng.org * * @{#} @SizeComplex.java Create on @2013-9-3 @下午11:06:52 */ package org.futeng.java.demo.enums; /** * * @author <a href="mailto:ifuteng@gmail.com">futeng</a> * */ public enum SizeComplex { SMALL ("A"), MEDIUM ("B"), LARGE ("C"), EXTRA_LARGE ("D"), INCREDIABLE ("E"), IMPOSSIBLE ("F"), FAKE ("G"); private String cup; private SizeComplex(String cup) { this.cup = cup; } public String getCup() { return cup; } public void setCup(String cup) { this.cup = cup; } }?