java枚举的使用
A. java枚举如何运用
看了第一个回答的代码,理解了下,感觉枚举也就是类,在类里面实例化了自己
B. 怎么使用java中的枚举方法
怎么解释枚举呢。枚举的定义就是一个有限值的集合。一个枚举类型的变量它的值只可能是类型值中的一个。
所以Drection 是类型名,Drection drection 则是此类型的变量,变量的值应该是类型里边所列的值中的一个,如果单写个WEST跟本不知道它是什么,所以要加类名限定即Drection.WEST. 于是,对一个枚举变量赋值的样子就像这样。
if(drection==Drection.WEST) return true; String west="WEST"; drection.toString().equals(west) return true;
C. Java中的枚举有哪些应用场景
两者使用上是差不多的。
我知道的区别有两个:
1.C#的枚举定义可以比java更加宽泛一些。C#可以定义枚举值与int的映射关系(不从0开始),可以定义枚举值的类型(int,short)。
2.switch语句的微妙差别:
比如
enum fruit{apple,orange};
java:
switch(fruit)
{
case apple:
break;
case orange:
break;
}
c#:
switch(fruit)
{
case fruit.apple:
break;
case fruit.orange:
break;
}
D. java中枚举用来干什么的
枚举是该类型的一个实例,相当于static final 类型的变量,可用于switch中,
//枚举类:
packagecom.golden.test;publicenumOperation{
/**增*/
INSERT,
/**删*/
DELETE,
/**改*/
UPDATE,
/**查*/
QUERY
}
//测试类
packagecom.golden.test;
publicclassTestEnum{
publicstaticvoidmain(String[]args){
System.out.println(Operation.DELETE);
System.out.println(Operation.valueOf("DELETE"));
System.out.println(Operation.valueOf("DELETE")==Operation.DELETE);
System.out.println("DELETE".equals(Operation.DELETE.toString()));
switch(Operation.DELETE){
caseINSERT:/**TODO*/break;
caseDELETE:/**TODO*/System.out.println("DELETE...");break;
caseUPDATE:/**TODO*/break;
caseQUERY:/**TODO*/break;
default:
break;
}
}
}
E. 如何使用java中的枚举类
static final通常跟的是一个int类型的常数,所以有时候可以用int型代替枚举
在有些时候需要输出这个枚举量的名字(比如January),上面的方法输出的是int值,用类的话可以把名字一起输出
总的来说前者消耗资源比较少,后者更符合枚举的定义
枚举的确是一个类,在JDK1.4及以前,没有enum这个用法,那时候都是使用类来建立的,在《Java编程思想》中介绍了一类写法(详见第三版的章节8.1.3群组常量);JDK5以后,enum被引入,本质上就是一个类,所以可以被继承,总体思路和第三版这个写法类似,只是换了个名字(《Java编程思想》第四版第19章专门讲这个)
补充:我把早期的例子给出吧,你看一下,这就是早期的枚举的方法:
public final class Month{
private String name;
private Month (String nm){name=nm;}
public String toString(){return name;}
public static final Month
JAN=new Month("January"),
FEB=new Month("February"),
MAR=new Month("March"),
APR=new Month("April"),
MAY=new Month("May"),
JUN=new Month("June"),
JUL=new Month("July"),
AUG=new Month("August"),
SEP=new Month("September"),
OCT=new Month("October"),
NOV=new Month("November"),
DEC=new Month("December");
public static final Month month[]={
JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
};
public static final Month number(int ord){
return month[ord-1];
}
//main
public static void main(String args[]){
Month m=Month.JAN;
System.out.println(m);
m=Month.number(12);
System.out.println(m);
System.out.println(m==Month.DEC);
System.out.println(m.equals(Month.DEC));
System.out.println(Month.month[3]);
System.out.println(Month.APR);
}
}
F. Java枚举类型怎么使用
举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。
1、常量的使用
在JDK1.5之前,我们定义常量都是:public static fianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
总结:
1、枚举的本质是类,在没有枚举之前,仍然可以按照java最基本的编程手段来解决需要用到枚举的地方。枚举屏蔽了枚举值的类型信息,不像在用public static final定义变量必须指定类型。枚举是用来构建常量数据结构的模板,这个模板可扩展。枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。枚举的更多用法还需要在开发中去研究创造,Java5、Java6增加了不少新的特性,技术在升级,对程序员来说就要学习,如果你热爱java的话。否则别人用到新特性的代码你看不懂,那才叫郁闷。
2、枚举在Java家族中只占了很小的一块比重,所以我在项目中用枚举的地方不是很多,毕竟,一个项目是很多人开发维护的,用一个陌生的东西,会给其他的同事造成阅读困难。所以常量大都是用public static final 来定义的。
G. 怎样在Java中使用嵌套枚举类型
Java语言中的枚举类型的使用方法如下:
用法一:常量;
public enum Color { RED, GREEN, BLANK, YELLOW }
用法二:switch;
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语言中枚举类型的基本使用方法。
H. JAVA中枚举是什么意思,怎么用
枚举就是把集合里的对象元素 一个一个提取出来!比如说 你买了一合巧克力 里面有草莓味的 有香草口味的 有苹果口味的 你想把他们拿出来 就必须用“手”一个一个把他们拿出来 并且一次只能取一个哦 这里的手就是枚举器 你取的动作就是枚举的过程
具体的用法 这个我就不好说了 推荐 你看看JDK1.5的API和参考别人的范例
看完了 基本可以理解 枚举几种选择(有迭代器和枚举器2种)和如何判断是否已经取完了对象元素 等等 我不是很喜欢讲语法 所以不好意思我就不给你丢代码了~
I. java枚举的几种用法
用法一:常量
在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,
有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
Java代码
public enum Color {
RED, GREEN, BLANK, YELLOW
}
用法二:switch
JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。
Java代码
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;
}
}
}
用法三:向枚举中添加新方法
如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。
Java代码
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;
}
}
用法四:覆盖枚举的方法
下面给出一个toString()方法覆盖的例子。
Java代码
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;
}
}
用法五:实现接口
所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。
Java代码
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);
}
}
用法六:使用接口组织枚举
Java代码
public interface Food {
enum Coffee implements Food{
BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO
}
enum Dessert implements Food{
FRUIT, CAKE, GELATO
}
}
private static void testImplementsInterface() {
for (Food.DessertEnum dessertEnum : Food.DessertEnum.values()) {
System.out.print(dessertEnum + " ");
}
System.out.println();
//我这地方这么写,是因为我在自己测试的时候,把这个coffee单独到一个文件去实现那个food接口,而不是在那个接口的内部。
for (CoffeeEnum coffee : CoffeeEnum.values()) {
System.out.print(coffee + " ");
}
System.out.println();
//搞个实现接口,来组织枚举,简单讲,就是分类吧。如果大量使用枚举的话,这么干,在写代码的时候,就很方便调用啦。
//还有就是个“多态”的功能吧,
Food food = Food.DessertEnum.CAKE;
System.out.println(food);
food = CoffeeEnum.BLACK_COFFEE;
System.out.println(food);
}
J. Java枚举有什么用 写个简单例子给我看下啊谢谢.讲的不要太官方了.谢谢
枚举类型用于指定种类的对象数目已经确定,而且只作标志使用的。
即:对象能够表达一定意义,却只是一个原子结构,没有更多属性,这样的对象在java中可以提高循环条件的判断效率,可用作为switch的条件。
假设武器的类型只有以下8种,则可定义:
enum 兵器 {刀,枪,剑,戟,斧,钺,钩,叉}
定义以及使用方法:
public class Test {
public static void main(String[] args) {
兵器 enu = 兵器.剑;
switch(enu){
case 刀 :
case 枪 :
case 剑 :
case 戟 :
case 斧 :
case 钺 :
case 钩 :
case 叉 :
}
}
}
事实上:枚举中的所有属性均为公有、静态而且为Enum类型的对象,枚举类型在创建完成的时候就把所有可能产生的该类型对象全部列了出来。