Java基础——枚举
2017-09-23 10:33
134 查看
一、使用枚举类之前是如何实现枚举的
在JDK1.5之前,我们定义常量都是:public static fianl....;定义枚举也可以通过如下的方式:package com.jiangbei.test.enumtest; /** * 颜色枚举类 * 作者: Administrator * 日期: 2017/9/23 **/ public class Color { // 1.私有的final属性 private final String name; // 颜色名称 private final String desc; // 颜色描述 // 2.构造器私有化,防止外部创建变量;并通过构造器初始化属性 private Color(String name, String desc){ this.name = name; this.desc = desc; } // 3.公有方法获取属性(final不提供setter) public String getName() { return name; } public String getDesc() { return desc; } // 4.通过枚举类创建对象 public static final Color RED = new Color("red", "这是红色"); public static final Color GREEN = new Color("green", "这是绿色"); public static final Color BLUE = new Color("blue", "这是蓝色"); // 5.其他普通方法 @Override public String toString() { return "Color{" + "name='" + name + '\'' + ", desc='" + desc + '\'' + '}'; } public void show(){ System.out.println("给你点颜色看看:"); } }
可以看到,主要是通过私有化构造器,然后在内部创建对象实现对象可以枚举的(这也是一个普通的类,本质和平时写的类没根本区别)
测试代码:
public static void main(String[] args) { Color red = Color.RED; Color green = Color.GREEN; red.show(); System.out.println(red); System.out.println(red.getName()); System.out.println(green); System.out.println(green.getDesc()); }
package com.jiangbei.test.enumtest; /** * 颜色枚举类 */ public enum ColorEnum { RED("red", "红色"),GREEN("green", "绿色"),BLUE("blue", "蓝色"); private String name; private String desc; ColorEnum(String name, String desc){ this.name = name; this.desc = desc; } public static String getDescByName(String name){ for (ColorEnum c : ColorEnum.values()) { if (c.getName().equalsIgnoreCase(name)) { return c.getDesc(); } } return null; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } @Override public String toString() { return "ColorEnum{" + "name='" + name + '\'' + ", desc='" + desc + '\'' + '}'; } }
View Code
测试:
public static void main(String[] args) { String red = ColorEnum.getDescByName("red"); System.out.println(red); ColorEnum blue = ColorEnum.BLUE; System.out.println(blue); }
其他常见用法可以参见:http://blog.csdn.net/qq_27093465/article/details/52180865
http://www.cnblogs.com/linjiqin/archive/2011/02/11/1951632.html
相关文章推荐
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- 黑马程序员_java基础加强_枚举
- Java基础加强<二>可变参数、增强for循环、基本类型的自动拆箱与装箱、枚举
- 【黑马程序员】java基础加强_枚举
- Java enum枚举类型基础
- java基础之枚举的使用
- Java基础加强---枚举
- java 基础之枚举
- Java - 基础增强 - 增强for - 可变参数 - 枚举 - 反射 - 内省 - 泛型
- java基础12_常用类_枚举
- java语言基础(102)——深入理解java枚举类(自己实现枚举 VS java原生提供枚举)
- Java基础---枚举
- 黑马程序员:基础加强(可变参数、增强for、枚举、javabBean、BeanUtils、注解、泛型)
- java基础---枚举(enum)
- java基础之枚举用法
- java 基础之枚举
- 黑马程序员-JAVA基础之枚举
- Java基础知识笔记:泛型和枚举
- JavaSE 拾遗(15)——JavaSE 高新技术基础增强...java5简单新特性和枚举
- 黑马程序员——Java基础:枚举