天天看点

【Java编程进阶-1】enum枚举的使用

枚举主要用于枚举常量,下面举个简单的应用。

比如一个公司有如下几个部门:

  • 研发部:
  • 销售部:
  • 财务部:

(其他部门暂时不列举)

部门的某些信息相对固定,此时可以考虑使用枚举来说明;

枚举类 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);

    }

}

测试结果:

【Java编程进阶-1】enum枚举的使用

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

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();

    }

}

测试结果: