Java 枚举类型的基础和高级用法
来源:互联网 发布:算法分析的两个方面是 编辑:程序博客网 时间:2024/05/21 08:21
java枚举类型自从jdk1.5产生以来,在自己的工作用很少使用到,或许还是使用以前常量定义的方式,所以没有意识到枚举类型是可以替代的,关于使用常量方式来列举的用法不再陈述,相信在使用过程中大家如果会总结,总会发现一些弊端,下面看看枚举类型的用法,是可以替代上述的常量的方式列举事物的。
- 最为常用的列举:
public enum Color { RED, GREEN, BLANK, YELLOW }
- 往枚举中添加自定义方法
public enum Color { RED("红色", 1), GREEN("绿色", 2), 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 方法 忽略 }
上面的getName方法也就是自己定义的一个静态方法,可以直接使用,也就是说在枚举类型的内部,可以存在与枚举相关的方法,但是因为枚举本身被定义为final了,所以这种方法一般都是返回数据。 - 覆盖枚举的方法
public enum Color {RED("红色", 1), GREEN("绿色", 2), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private Color(String name, int index) { this.name = name; this.index = index;}//覆盖方法@Overridepublic String toString() { return this.index+"-->"+this.name;} // get set 方法 忽略}
这里的toString 方法,在没有重新之前,默认是可以直接调用的,但是其返回值为枚举的常量值,如:RED或YELLO等,但是复写之后,就可以实现自己定义的方式。 - 枚举实现接口
public interface Behaviour {void print();String getInfo();}public enum Color implements Behaviour{RED("红色", 1), GREEN("绿色", 2), YELLO("黄色", 4);// 成员变量private String name;private int index;// 构造方法private Color(String name, int index) { this.name = name; this.index = index;}//接口方法@Overridepublic String getInfo() { return this.name;}//接口方法@Overridepublic 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 } }
6.构造抽象方法,要求枚举实现public enum Phone{ APPLE {double totalprice(double a,double b){return a+b;}}, HUAWEI {double totalprice(double a,double b){return a+b-2;}}, SUMSANG {double totalprice(double a,double b){return a+b-4;}};abstract totalprice(doublea,double b); }
这样,就可以讲不同的行为与每个枚举常量关联起来,使得每个枚举常量本身带有一个方法,最后通过常量类型调用该方法就是得到相应的值。
0 0
- Java 枚举类型的基础和高级用法
- java枚举类型的用法
- java高级-枚举类型
- Java基础--枚举类型
- java 中枚举类型的用法
- java中枚举类型Enum的用法
- java枚举类型的基本用法
- Java的枚举类型用法介绍
- Java的枚举类型用法介绍
- Java的枚举类型用法介绍
- 关于枚举的用法和类型转换
- 枚举类型的用法
- 枚举类型的用法
- 枚举类型的用法
- 枚举类型的用法
- Java基础(11):枚举类型
- Java 枚举类型基础案例
- Java enum枚举类型基础
- 程序员的编程艺术第一章
- HDU OJ1061 Rightmost Digit
- java 输入输出流
- c/c++素数距离问题
- 上下班同行有利于婚姻美满?
- Java 枚举类型的基础和高级用法
- Java小程序之GUI开发简单前台登录界面
- 2015noip pj 总结&反思
- Hive之UDTF
- 贪吃蛇(4)
- [Poj1236]Network of Schools
- Charles入门教程
- CString 转 String和String转CString
- LeetCode----Sort List