Java语言中的枚举类型的使用方法如下:
用法一:常量;
public enum Color {RED, GREEN, BLANK, YELLOW
}
用法二:switch;
enum Signal {GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED
public void change() {
switch (color) {
case RED:
color = Signal.GREEN
break
case YELLOW:
color = Signal.RED
break
case GREEN:
color = Signal.YELLOW
break
}
}
}
用法三:向枚举中添加新方法;
public enum Color {RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4)
// 成员变量
private String name
private int index
// 构造方法
private Color(String name, int index) {
this.name = name
this.index = index
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name
}
}
return null
}
// get set 方法
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public int getIndex() {
return index
}
public void setIndex(int index) {
this.index = index
}
}
用法四:覆盖枚举的方法;
public class Test {public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4)
// 成员变量
private String name
private int index
// 构造方法
private Color(String name, int index) {
this.name = name
this.index = index
}
// 覆盖方法
@Override
public String toString() {
return this.index + "_" + this.name
}
}
public static void main(String[] args) {
System.out.println(Color.RED.toString())
}
}
用法五:实现接口;
public interface Behaviour {void print()
String getInfo()
}
public enum Color implements Behaviour {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4)
// 成员变量
private String name
private int index
// 构造方法
private Color(String name, int index) {
this.name = name
this.index = index
}
// 接口方法
@Override
public String getInfo() {
return this.name
}
// 接口方法
@Override
public void print() {
System.out.println(this.index + ":" + this.name)
}
}
用法六:使用接口组织枚举。
public interface Food {enum Coffee implements Food {
BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
}
enum Dessert implements Food {
FRUIT, CAKE, GELATO
}
}
以上就是Java语言中枚举类型的基本使用方法。
枚举在Java中是一个类 ,代表着类的一一列举。要想知道枚举具体的使用首先要先知道它的具体的 属性 和 方法 才可以。虽然说我们在实际应用中很少去关注它的属性和方法,而是更多的关注它的 特性 ,利用它本身的特性去满足各种有意思的场景。
由于上篇内容讲了我们自定义的枚举其实经过编译之后,实际继承的是lang包下的Enum类。虽然我们自定义的枚举类中可能存在不定义私有属性的情况,但继承的Enum类中自身就带有着两个属性,name属性、和ordinal属性。Enum类的源码
name为我们枚举值的名称,而ordinal这个词的意思是“序数”或者说“有顺序的”,其实就是序数。我们知道枚举所代表的就是包含一个以上枚举值的集合,既然是集合它就是有顺序的,而大多数我们使用的时候往往忽略了它的序数这个属性,似乎忘了枚举是枚举这件事了。
枚举中的序号是根据我们的枚举中显示的顺序决定的,其实是是语法糖转换时初始化枚举值时决定了枚举值的序数,枚举中,第一个枚举值的序数总是小于后面枚举值的序数,且序数是从0开始的。
接着上面讲的序数ordinal,针对序数我们先讲枚举的values()方法。
作为一个枚举值的集合,所必须要有的操作肯定是遍历,这也是静态常量所没有的支持的。values()其实就是获取我们枚举值的数组:
虽然我们自定义的枚举类是可以使用这个方法的,但继承的Enum类却没有这个方法,其实values()这个方法是很特殊的一个方法,之前说过枚举是一种语法糖,在它真正编译后,就会产生values()这个方法,所以我们自定义的枚举类是可以使用这个方法的,而且values()方法所返回的其实是一个浅拷贝;
前面说到枚举有两个属性,name和ordinal,但实际上枚举只提供了根据name来获取具体枚举值的方法,却没有提供根据ordinal来获取具体枚举值的方法,但是values()方法也算是另外一种弥补了,根据values()得到的数据再根据ordinal序数获取具体的枚举值其实也是一样的效果。valueOf()方法就是那个根据name获取具体枚举值的方法,使用案例:
可选姿势为两种,一参和两参,具体看案例。
枚举就是把集合里的对象元素 一个一个提取出来!比如说 你买了一合巧克力 里面有草莓味的 有香草口味的 有苹果口味的 你想把他们拿出来 就必须用“手”一个一个把他们拿出来 并且一次只能取一个哦 这里的手就是枚举器 你取的动作就是枚举的过程具体的用法 这个我就不好说了 推荐 你看看JDK1.5的API和参考别人的范例
看完了 基本可以理解 枚举几种选择(有迭代器和枚举器2种)和如何判断是否已经取完了对象元素 等等 我不是很喜欢讲语法 所以不好意思我就不给你丢代码了~