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

枚举类 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. 能不能对metronic继续封装一下呢

    按照这篇文章的说法,目前metronic的层级还是较低的,只是针对Bootstrap做了很多的用例(最佳实践). 我上一个项目是用easy UI,准确地说,是经过简单封装的easy UI.用起来非常爽 ...

  2. Linux(Ubuntu 13)下安装Eclipse

    1.本机配置及软件情况: Ubuntu版本:Ubuntukylin-13.10-desktop-i386(32位) JDK:jdk1.7.0_15(jdk-7u15-i856.gz) eclipse: ...

  3. dede取子栏目时重复显示同级栏目的终极解决方法

    使用channelartlist标签时,当栏目没有子栏目是,会出现重复同级栏目的问题,解决方法如下: 先看下面的代码{dede:channelartlist typeid='2'}  {dede:ty ...

  4. php中读取文件内容的几种方法

    1.fread string fread ( int $handle , int $length ) fread() 从 handle 指向的文件中读取最多 length 个字节.该函数在读取完最多 ...

  5. div+css 遮罩层

    CSS样式部分: ---------------------------------- <style type="text/css">#loading-mask{    ...

  6. 数据处理项目Beta阶段软件架构建议

    class:Dataserver string serverIP string serverPassword string sqlAccount string sqlPassword bool Dat ...

  7. 穿越泥地(mud) (BFS)

    问题 C: 穿越泥地(mud) 时间限制: 1 Sec  内存限制: 128 MB提交: 16  解决: 10[提交][状态][讨论版] 题目描述 清早6:00,FJ就离开了他的屋子,开始了他的例行工 ...

  8. IOS 开发qq登陆界面

    // //  ViewController.m //  QQUI_bydfg // //  Created by Kevin_dfg on 16/4/15. //  Copyright © 2016年 ...

  9. 【NOIP2013】货车运输

    感觉这题挺水的……真的挺水的…… 原题: A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车 ...

  10. java 四种内部类和内部接口

    /** * 常规内部类:常规内部类没有用static修饰且定义在在外部类类体中. * 1.常规内部类中的方法可以直接使用外部类的实例变量和实例方法. * 2.在常规内部类中可以直接用内部类创建对象 * ...