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

枚举类 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. eclipse 中文乱码

    使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码 格式解决乱码问题.在Eclipse可以从几个层面设置编 ...

  2. Oracle执行语句跟踪(1)——使用sql trace实现语句追踪

    系统上的某个接口提交数据经常超时(超过3秒),而我单独在后台数据库(Oracle)执行insert,只需要17ms.提交数据的客户端没有任何的调试日志,只能通过跟踪后台语句记录实际调用过程中的数据库执 ...

  3. UI学习笔记---第十一天UITableView表视图高级-自定义cell

    自定义cell,多类型cell混合使用,cell自适应高度 自定义cell就是创建一个UITableViewCell的子类 把cell上的空间创建都封装在子类中,简化viewController中的代 ...

  4. HDU 5748 最长上升子序列的长度nlogn(固定尾部)

    Bellovin Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  5. 【渗透测试学习平台】 web for pentester -1.介绍与安装

    web for pentester是国外安全研究者开发的的一款渗透测试平台,通过该平台你可以了解到常见的Web漏洞检测技术. 官网:https://www.pentesterlab.com 下载地址: ...

  6. C语言中的三字母词

    C语言中的三字母词(trigraph) 在ANSI C标准中,定义了9个三字母词(trigraph),三字母词就是几个字符的序列,合起来表示另一个字符.三字母词使C语言环境可以在缺少一些必需字符的字符 ...

  7. 工作中遇到的问题--Hibernate注解添加在一方和多方的区别

    以Good和GoodStatus为例: 一.注解仅添加在一方: @Entity@Table(name = "GOOD")@Where(clause="enabled=1& ...

  8. poj2553 强连通

    题意:定义了一个图的底(bottom),是指在一个图中能够被所有点到达的点,问途中有哪些点是图的底. 首先是同一个强连通分量中的点都能够互相到达,强连通分量中一个点能到达其他点,也必然代表该强连通分量 ...

  9. K650D安装黑苹果

    1.需要UEFI+GPT模式的win8或win10 2.关闭UEFI模式,进PE,分一个400M的分区,格式化为FAT16或EFI模式 3.制作clover模式的MAC安装U盘:链接: http:// ...

  10. 【P1326】超级教主

    DP优化 原题: LHX教主很能跳,因为Orz他的人太多了.教主跳需要消耗能量,每跳1米就会消耗1点能量,如果教主有很多能量就能跳很高.教主为了收集能量,来到了一个神秘的地方,这个地方凡人是进不来的. ...