国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

枚舉和單例 黑馬程序員

2019-11-14 23:15:45
字體:
來源:轉載
供稿:網友
枚舉和單例 黑馬程序員
---------------------- <a >asp.net+Unity開發</a>、<a >.Net培訓</a>、期待與您交流! ----------------------一.枚舉的概念      關于枚舉的概念,我們可以先提一個問題,對于一切都是類一切都是對象的java語言來說,枚舉是不是類?      enum除了不能繼承之外,可以定義構造器,有正常的方法,甚至是抽象方法,因此基本上可以將enum看做一個常規的類。既然可以把它看作是一個常規的類,我們不妨寫一個類模擬枚舉。      本文的案例場景:以我們邁勝(mison)的企業理念以及各個崗位的工作職責為例:public class Misoner {        PRivate Misoner() {}        //講師        public static final Misoner TECHNICAL_ADVISER = new Misoner();        //就業指導        public static final Misoner EMPLOYMENT_GUIDE = new Misoner();        //軟件外包        public static final Misoner SOFTWARE_DEVELOPMENT = new Misoner();        //咨詢中心        public static final Misoner CONSULTING_CENTER = new Misoner();}復制代碼這個類跟其他類不一樣的地方便是構造器是private的以及對象都是以常量的形式出現,為什么要這么定義?從枚舉無法實例化以及通過枚舉直接訪問元素這兩點考慮就不難理解了。接下來我們來看一下上述代碼通過枚舉怎么實現:public enum MisonerEnum{        // 講師,就業指導中心,軟件外包中心,咨詢中心        TECHNICAL_ADVISER, EMPLOYMENT_GUIDE, SOFTWARE_DEVELOPMENT, CONSULTING_CENTER;}復制代碼通過枚舉實現的代碼就簡潔很多了。接下來再提兩個問題:1.枚舉的構造器怎么調用?2.枚舉的抽象方法如何實現?先看第1個問題:package complex;public class Misoner {        private Misoner(String position) {                System.out.println("崗位:" + position);        }        public static final Misoner TECHNICAL_ADVISER = new Misoner("技術總監");        public static final Misoner EMPLOYMENT_GUIDE = new Misoner("就業指導");        public static final Misoner SOFTWARE_DEVELOPMENT = new Misoner("項目經理");        public static final Misoner CONSULTING_CENTER = new Misoner("咨詢顧問");        }復制代碼上面的代碼耳熟能詳,很容易理解,枚舉又如何實現以上代碼,如下:package complex;public enum MisonerEnum {        TECHNICAL_ADVISER("技術總監"), EMPLOYMENT_GUIDE("就業指導"), SOFTWARE_DEVELOPMENT(                        "項目經理"), CONSULTING_CENTER("咨詢顧問");        private MisonerEnum(String position) {                System.out.println("崗位:" + position);        }}復制代碼接下來是第2個問題,同樣的,我們通過模擬的枚舉類和枚舉進行比較:package complex;public abstract class Misoner {        private Misoner(String position) {                System.out.println("崗位:" + position);        }        // 定義內部類對象        public static final Misoner TECHNICAL_ADVISER = new Misoner("技術總監") {                public void work() {                        System.out.println("講師提供一流的JAVA技術培訓");                }        };        public static final Misoner EMPLOYMENT_GUIDE = new Misoner("就業指導") {                public void work() {                        System.out.println("就業指導中心幫助學員實現高薪就業");                }        };        public static final Misoner SOFTWARE_DEVELOPMENT = new Misoner("項目經理") {                public void work() {                        System.out.println("軟件外包中心為學員提供商業外包帶薪實戰");                }        };        public static final Misoner CONSULTING_CENTER = new Misoner("咨詢顧問") {                public void work() {                        System.out.println("咨詢中心為學員提供生活學習上的一切服務");                }        };        //定義抽象方法        public abstract void work();}復制代碼而使用enum的代碼如下:package complex;public enum MisonerEnum {                TECHNICAL_ADVISER("技術總監") {                public void work() {                        System.out.println("講師提供一流的JAVA技術培訓");                }        }, EMPLOYMENT_GUIDE("就業指導") {                public void work() {                        System.out.println("就業指導中心幫助學員實現高薪就業");                                        }        }, SOFTWARE_DEVELOPMENT("項目經理") {                public void work() {                        System.out.println("軟件外包中心為學員提供商業外包帶薪實戰");                                        }        }, CONSULTING_CENTER("咨詢顧問") {                public void work() {                        System.out.println("咨詢中心為學員提供生活學習上的一切服務");                }        };                private MisonerEnum(String position) {                System.out.println("崗位:" + position);        }                public abstract void work();}---------------------- <a >ASP.Net+Unity開發</a>、<a >.Net培訓</a>、期待與您交流! ----------------------


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广水市| 太湖县| 安平县| 申扎县| 泽库县| 永福县| 余江县| 论坛| 溧阳市| 昭平县| 遵义市| 纳雍县| 柘城县| 鲁山县| 胶州市| 静乐县| 玉门市| 云阳县| 杨浦区| 普定县| 曲周县| 大兴区| 茂名市| 辽阳市| 延津县| 甘洛县| 定襄县| 陇西县| 雅安市| 崇信县| 宁河县| 武乡县| 晋中市| 南投市| 新津县| 襄垣县| 裕民县| 枣庄市| 乳山市| 河池市| 浮梁县|