zoukankan      html  css  js  c++  java
  • Java enum应用小结

    用法一:常量

    在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

    public enum Color {  
      RED, GREEN, BLANK, YELLOW  
    }  
    用法二:switch

    JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

    public enum Code {
    	SUCCESS(10000,"操作成功"),FAIL(10001,"操作失败");
    	
    	private int code;
    	private String msg;
    	
    	private Code(int code, String msg) {
    		this.code = code;
    		this.msg = msg;
    	}
    	public int getCode() {
    		return code;
    	}
    	public void setCode(int code) {
    		this.code = code;
    	}
    	public String getMsg() {
    		return msg;
    	}
    	public void setMsg(String msg) {
    		this.msg = msg;
    	}
    	
    	/**
    	 * 根据value获取Code
    	 * @param value
    	 * @return
    	 */
    	public static Code getByValue(int value){
            for (Code code : values()) {  
                if (code.getCode() == value) {  
                    return code;
                }  
            }
            return null;
    	}
    
    }
    public class CodeTest {
    	
    	public static void main(String[] args) {
    		int code = Code.SUCCESS.getCode();
    		switch (Code.getByValue(code)) {
    		case SUCCESS:
    			System.out.println("ok...");
    			break;
    		case FAIL:
    			System.out.println("error...");
    			break;
    		default:
    			System.out.println("default...");
    			break;
    		}
    		
    	}
    }
    用法三:实现接口

    所有的枚举都继承自java.lang.Enum类。由于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);  
        }  
    }
    用法四:使用接口组织枚举
    public interface Food {  
        enum Coffee implements Food{  
            BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
        }  
        enum Dessert implements Food{  
            FRUIT, CAKE, GELATO  
        }  
    } 
    用法五:关于枚举集合的使用
    java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

    参考博文:http://blog.csdn.net/qq_27093465/article/details/52180865

  • 相关阅读:
    第五周作业
    第四周编程总结
    第六周作业
    2019春第五周作业
    2019年春季学期第四周作业
    2019年春季学期第三周作业
    求最大值及其下标
    7-1
    第十周课程总结
    第九周课程总结&实验报告(七)
  • 原文地址:https://www.cnblogs.com/archermeng/p/8587513.html
Copyright © 2011-2022 走看看