枚举主要用于枚举常量,下面举个简单的应用。
比如一个公司有如下几个部门:
  • 研发部:
  • 销售部:
  • 财务部:
(其他部门暂时不列举)
部门的某些信息相对固定,此时可以考虑使用枚举来说明;

枚举类 Depts.java


package myEnum;
public enum Depts {
    
    FINACEDEPT("财务部","负责公司财务"),
    DEVELOPDEPT("研发部","负责软件研发工作"),
    SALEDEPT("销售部","负责公司的销售工作");
    
    private final String name_cn;         //中文名
    private final String description;     //描述
    Depts(String n,String desc){
        this.name_cn = n;
        this.description = desc;
    }
    
    public String getName_cn() {
        return name_cn;
    }
    public String getDescription() {
        return description;
    }  
}

测试类:EnumTest.java


package myEnum;
public class EnumTest {
    public static void main(String args[]) {
        for (Depts dept : Depts.values()) {
            System.out.println(dept + "-" + dept.getName_cn() + "-"
                    + dept.getDescription());
        }
        System.out.println(Depts.DEVELOPDEPT.getDescription());
        System.out.println(Depts.DEVELOPDEPT);
    }
}

测试结果:




我们还可以为枚举参加抽象方法,然后让每个枚举值实现这个抽象方法。

package myEnum;
public enum Depts {
    
    FINACEDEPT("财务部", "负责公司财务") {
        void printInfo() {
            System.out.println("最近公司财务信息不错");
        }
    },
    DEVELOPDEPT("研发部","负责软件研发工作") {
        void printInfo() {
            System.out.println("公司使用Java作为研发工具");
        }
    },
    SALEDEPT("销售部","负责公司的销售工作") {
        void printInfo() {
            System.out.println("公司销售目标:10000台/年");
        }
    };
    
    private final String name_cn;         //中文名
    private final String description;     //描述
    Depts(String n,String desc){
        this.name_cn = n;
        this.description = desc;
    }
    
    public String getName_cn() {
        return name_cn;
    }
    public String getDescription() {
        return description;
    }
    
    abstract void printInfo();
}

测试类:

package myEnum;
public class EnumTest {
    public static void main(String args[]) {
        for (Depts dept : Depts.values()) {
            System.out.print(dept);
            dept.printInfo();
        }
        Depts.DEVELOPDEPT.printInfo();
    }
}

测试结果:


【Java编程进阶-1】enum枚举的使用的更多相关文章

  1. Java编程的逻辑 (23) - 枚举的本质

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  2. [刘阳Java]_程序员Java编程进阶的5个注意点,别编程两三年还是增删改查

    此文章也是关注网上好几篇技术文章后,今天分享出来.因为,总有在程序学习路上的小伙伴会感到迷茫.而迷茫存在的情况如下 第一种:在大学学习中出现的迷茫,不知道Java到底要学什么.学习Java的标准是什么 ...

  3. Java编程思想学习笔记——枚举类型

    前言 关键字enum可以将一组具名的值有限集合创建一种为新的类型,而这些具名的值可以作为常规的程序组件使用. 正文 基本enum特性 调用enum的values()方法可以遍历enum实例,value ...

  4. java成神之——enum枚举操作

    枚举 声明 枚举遍历 枚举在switch中使用 枚举比较 枚举静态构造方法 使用类来模拟枚举 枚举中定义抽象方法 枚举实现接口 单例模式 使用静态代码快 EnumSet EnumMap 结语 枚举 声 ...

  5. 来测试下你的Java编程能力

    上篇整理了下后面准备更系统化写的Java编程进阶的思路,如果仅看里面的词,很多同学会觉得都懂,但我真心觉得没有多少人是真懂的,所以简单的想了一些题目,感兴趣的同学们可以来做做看,看看自己的Java编程 ...

  6. 阿里毕玄:来测试下你的Java编程能力

    上篇整理了下后面准备更系统化写的Java编程进阶的思路,如果仅看里面的词,很多同学会觉得都懂,但我真心觉得没有多少人是真懂的,所以简单的想了一些题目,感兴趣的同学们可以来做做看,看看自己的Java编程 ...

  7. 161208、Java enum 枚举还可以这么用

    在大部分编程语言中,枚举类型都会是一种常用而又必不可少的数据类型,Java中当然也不会例外.然而,Java中的Enum枚举类型却有着许多你意想不到的用法,下面让我们一起来看看. 先来看一段代码示例: ...

  8. java之enum枚举(2015年05月28日)

    背景: 今天启动了一个新的项目,由于要从之前的旧项目中拿过来一些代码,所以就看了下公司之前项目代码,发现有定义的常量类,也有枚举类,然后就在想着两者的功能差不多,那他们之间到底有什么区别呢,所以就决定 ...

  9. Java中的enum枚举类

    首先说说为什么要写这个enum枚举类吧,是群里有个新手问:怎样把enum类中的值遍历得到,其实自己用的也很少.自己也是确实不知道,于是我去网上搜了不少,总结了些,希望对大家有帮助:首先我说说怎样遍历枚 ...

随机推荐

  1. python报错

    报错1 UnboundLocalError: local variable 'x' referenced before assignment 定义了一个全局参数,但是在函数中直接改变参数值,就会报这个 ...

  2. postgresql copy命令介绍

    COPY 命令可以快速的导入数据到postgresql数据库中,文件格式类似TXT.CVS之类.适合批量导入数据,速度比较快.注意COPY只能用于表,不能用于视图. COPY 命令里面的文件必须是由服 ...

  3. sql server触发器中增删改判断

    触发器生效逻辑 在Before或者After之后使用INSERT,DELETE,UPDATE 触发器内情况判断 插入 if exists(select 1 from inserted) and not ...

  4. andorid中Html.fromHtml方法

    在android中,有一个容易遗忘的Html.fromhtml方法,意思是可以将比如文本框中的字符串进行HTML格式化,支持的还是很多的, 但要注意的是要在string.xml中用<!--cda ...

  5. Ubuntu系统的修改Hosts

    1.修改hostssudo gedit /etc/hosts2.添加解析记录( . )完整案例:127.0.0.1 localhost.localdomain localhost简洁记录:127.0. ...

  6. 2016 MIPT Pre-Finals Workshop Taiwan NTU Contest

    2016弱校联盟十一专场10.5 传送门 A. As Easy As Possible 假设固定左端点,那么每次都是贪心的匹配\(easy\)这个单词. 从\(l\)开始匹配的单词,将\(y\)的位置 ...

  7. Android多线程入门学习

    (1)进程间通信交换信息的一种方式--使用handler: (2)在主线程中new一个Handler对象,并重写他的handlerMessage(Message msg)方法: (3)Message中 ...

  8. windows下AppServ安装php的memcached扩展

    memcache和memcached的区别  在自己的新程序中打算全面应用memcached技术,这个很容易理解这是memcached是内存缓存,但是怎么还有memcache呢?  其实很简单,mem ...

  9. 越狱Season 1- Episode 18: Bluff

    Season 1, Episode 18: Bluff -Michael: Scofield Scofield Michael Scofield Michael Scofield -Patoshik: ...

  10. 黑马程序员——JAVA基础之单列设计模式

    ------- android培训.java培训.期待与您交流! ---------- 单列设计模式是面试中的一个常考的点,所谓单例模式就是说对象在内存中只能存在一个.如果有其他变量是该类对象,那么他 ...