天天看點

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

    }

}

測試結果: