### 1 èæ¯ å¨`java`è¯è¨ä¸è¿æ²¡æå¼å ¥æä¸¾ç±»åä¹åï¼è¡¨ç¤ºæä¸¾ç±»åçå¸¸ç¨æ¨¡å¼æ¯å£°æä¸ç»å ·æ`int`常éãä¹åæä»¬é常å©ç¨`public final static` æ¹æ³å®ä¹ç代ç å¦ä¸ï¼åå«ç¨1 表示æ¥å¤©ï¼2表示å¤å¤©ï¼3表示ç§å¤©ï¼4表示å¬å¤©ã public class Season { public static final int SPRING = 1; public static final int SUMMER = 2; public static final int AUTUMN = 3; public static final int WINTER = 4; } è¿ç§æ¹æ³ç§°ä½intæä¸¾æ¨¡å¼ãå¯è¿ç§æ¨¡å¼æä»ä¹é®é¢å¢ï¼æä»¬é½ç¨äºé£ä¹ä¹ äºï¼åºè¯¥æ²¡é®é¢çãé常æä»¬ååºæ¥ç代ç é½ä¼èèå®ç**å®å ¨æ§**ã**æç¨æ§**å**å¯è¯»æ§**ã é¦å æä»¬æ¥èèä¸ä¸å®çç±»å**å®å ¨æ§**ãå½ç¶**è¿ç§æ¨¡å¼ä¸æ¯ç±»åå®å ¨ç**ãæ¯å¦è¯´æä»¬è®¾è®¡ä¸ä¸ªå½æ°ï¼è¦æ±ä¼ å ¥æ¥å¤ç§å¬çæä¸ªå¼ã使¯ä½¿ç¨intç±»åï¼æä»¬æ æ³ä¿è¯ä¼ å ¥çå¼ä¸ºåæ³ã代ç å¦ä¸æç¤ºï¼ private String getChineseSeason(int season){ StringBuffer result = new StringBuffer(); switch(season){ case Season.SPRING : result.append("æ¥å¤©"); break; case Season.SUMMER : result.append("å¤å¤©"); break; case Season.AUTUMN : result.append("ç§å¤©"); break; case Season.WINTER : result.append("å¬å¤©"); break; default : result.append("å°ç没æçå£è"); break; } return result.toString(); } public void doSomething(){ System.out.println(this.getChineseSeason(Season.SPRING));//è¿æ¯æ£å¸¸çåºæ¯ System.out.println(this.getChineseSeason(5));//è¿ä¸ªå´æ¯ä¸æ£å¸¸çåºæ¯ï¼è¿å°±å¯¼è´äºç±»åä¸å®å ¨é®é¢ } ç¨åº`getChineseSeason(Season.SPRING)`æ¯æä»¬é¢æçä½¿ç¨æ¹æ³ãå¯`getChineseSeason(5)`æ¾ç¶å°±ä¸æ¯äºï¼èä¸ç¼è¯å¾éè¿ï¼å¨è¿è¡æ¶ä¼åºç°ä»ä¹æ åµï¼æä»¬å°±ä¸å¾èç¥äºãè¿æ¾ç¶å°±ä¸ç¬¦å`Java`ç¨åºçç±»åå®å ¨ã æ¥ä¸æ¥æä»¬æ¥èèä¸ä¸è¿ç§æ¨¡å¼ç**å¯è¯»æ§**ãä½¿ç¨æä¸¾ç大夿°åºåï¼æé½éè¦æ¹ä¾¿å¾å°æä¸¾ç±»åçå符串表达å¼ã妿å°`int`æä¸¾å¸¸éæå°åºæ¥ï¼æä»¬æè§å°çå°±æ¯ä¸ç»æ°åï¼è¿æ¯æ²¡ä»ä¹å¤ªå¤§çç¨å¤ãæä»¬å¯è½ä¼æ³å°ä½¿ç¨`String`常é代æ¿`int`常éãè½ç¶å®ä¸ºè¿äºå¸¸éæä¾äºå¯æå°çå符串ï¼ä½æ¯å®ä¼å¯¼è´æ§è½é®é¢ï¼å 为å®ä¾èµäºåç¬¦ä¸²çæ¯è¾æä½ï¼æä»¥è¿ç§æ¨¡å¼ä¹æ¯æä»¬ä¸ææçã ä»**ç±»åå®å ¨æ§**å**ç¨åºå¯è¯»æ§**两æ¹é¢èèï¼`int`å`String`æä¸¾æ¨¡å¼ç缺ç¹å°±æ¾é²åºæ¥äºã幸è¿çæ¯ï¼ä»`Java1.5`åè¡çæ¬å¼å§ï¼å°±æåºäºå¦ä¸ç§å¯ä»¥æ¿ä»£çè§£å³æ¹æ¡ï¼å¯ä»¥é¿å `int`å`String`æä¸¾æ¨¡å¼ç缺ç¹ï¼å¹¶æä¾äºè®¸å¤é¢å¤ç好å¤ãé£å°±æ¯æä¸¾ç±»åï¼`enum type`ï¼ãæ¥ä¸æ¥çç« èå°ä»ç»æä¸¾ç±»åçå®ä¹ãç¹å¾ãåºç¨åºæ¯åä¼ç¼ºç¹ã ### 2 å®ä¹ æä¸¾ç±»åï¼`enum type`ï¼æ¯æç±ä¸ç»åºå®ç常éç»æåæ³çç±»åã`Java`ä¸ç±å ³é®å`enum`æ¥å®ä¹ä¸ä¸ªæä¸¾ç±»åãä¸é¢å°±æ¯`java`æä¸¾ç±»åçå®ä¹ã public enum Season { SPRING, SUMMER, AUTUMN, WINER; } ### 3 ç¹ç¹ `Java`å®ä¹æä¸¾ç±»åçè¯å¥å¾ç®çº¦ã宿以ä¸ç¹ç¹ï¼ > 1) 使ç¨å ³é®å`enum` 2) ç±»ååç§°ï¼æ¯å¦è¿éç`Season` 3) ä¸ä¸²å 许çå¼ï¼æ¯å¦ä¸é¢å®ä¹çæ¥å¤ç§å¬åå£ 4) æä¸¾å¯ä»¥åç¬å®ä¹å¨ä¸ä¸ªæä»¶ä¸ï¼ä¹å¯ä»¥åµå¨å ¶å®`Java`ç±»ä¸ é¤äºè¿æ ·çåºæ¬è¦æ±å¤ï¼ç¨æ·è¿æä¸äºå ¶ä»éæ© > 5) æä¸¾å¯ä»¥å®ç°ä¸ä¸ªæå¤ä¸ªæ¥å£ï¼Interfaceï¼ 6) å¯ä»¥å®ä¹æ°çåé 7) å¯ä»¥å®ä¹æ°çæ¹æ³ 8) å¯ä»¥å®ä¹æ ¹æ®å ·ä½æä¸¾å¼èç¸å¼çç±» ### 4 åºç¨åºæ¯ 以å¨èæ¯ä¸æå°çç±»åå®å ¨ä¸ºä¾ï¼ç¨æä¸¾ç±»åéå飿®µä»£ç ã代ç å¦ä¸ï¼ public enum Season { SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4); private int code; private Season(int code){ this.code = code; } public int getCode(){ return code; } } public class UseSeason { /** * å°è±æçå£èè½¬æ¢æä¸æå£è * @param season * @return */ public String getChineseSeason(Season season){ StringBuffer result = new StringBuffer(); switch(season){ case SPRING : result.append("[ä¸æï¼æ¥å¤©ï¼æä¸¾å¸¸é:" + season.name() + "ï¼æ°æ®:" + season.getCode() + "]"); break; case AUTUMN : result.append("[䏿ï¼ç§å¤©ï¼æä¸¾å¸¸é:" + season.name() + "ï¼æ°æ®:" + season.getCode() + "]"); break; case SUMMER : result.append("[䏿ï¼å¤å¤©ï¼æä¸¾å¸¸é:" + season.name() + "ï¼æ°æ®:" + season.getCode() + "]"); break; case WINTER : result.append("[䏿ï¼å¬å¤©ï¼æä¸¾å¸¸é:" + season.name() + "ï¼æ°æ®:" + season.getCode() + "]"); break; default : result.append("å°ç没æçå£è " + season.name()); break; } return result.toString(); } public void doSomething(){ for(Season s : Season.values()){ System.out.println(getChineseSeason(s));//è¿æ¯æ£å¸¸çåºæ¯ } //System.out.println(getChineseSeason(5)); //æ¤å¤å·²ç»æ¯ç¼è¯ä¸éè¿äºï¼è¿å°±ä¿è¯äºç±»åå®å ¨ } public static void main(String[] arg){ UseSeason useSeason = new UseSeason(); useSeason.doSomething(); } } [ä¸æï¼æ¥å¤©ï¼æä¸¾å¸¸é:SPRINGï¼æ°æ®:1] [䏿ï¼å¤å¤©ï¼æä¸¾å¸¸é:SUMMERï¼æ°æ®:2] [䏿ï¼ç§å¤©ï¼æä¸¾å¸¸é:AUTUMNï¼æ°æ®:3] [䏿ï¼å¬å¤©ï¼æä¸¾å¸¸é:WINTERï¼æ°æ®:4] è¿éæä¸ä¸ªé®é¢ï¼ä¸ºä»ä¹æè¦å°åæ·»å å°æä¸¾ç±»åä¸å¢ï¼ç®çæ¯æ³å°æ°æ®ä¸å®ç常éå ³èèµ·æ¥ãå¦1代表æ¥å¤©ï¼2代表å¤å¤©ã ### 5 æ»ç» é£ä¹ä»ä¹æ¶ååºè¯¥ä½¿ç¨æä¸¾å¢ï¼æ¯å½éè¦ä¸ç»åºå®ç常éçæ¶åï¼å¦ä¸å¨ç天æ°ãä¸å¹´åå£çãæè æ¯å¨æä»¬ç¼è¯åå°±ç¥éå ¶å å«çææå¼çéåãJava 1.5çæä¸¾è½æ»¡è¶³ç»å¤§é¨åç¨åºåçè¦æ±çï¼å®çç®æï¼æç¨çç¹ç¹æ¯å¾çªåºçã ### 6 ç¨æ³ ### ç¨æ³ä¸ï¼å¸¸é public enum Color { RED, GREEN, BLANK, YELLOW } ### ç¨æ³äºï¼switch enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } } ### ç¨æ³ä¸ï¼åæä¸¾ä¸æ·»å æ°æ¹æ³ public enum Color { RED("红è²", 1), GREEN("绿è²", 2), BLANK("ç½è²", 3), YELLO("é»è²", 4); // æååé private String name; private int index; // æé æ¹æ³ private Color(String name, int index) { this.name = name; this.index = index; } // æ®éæ¹æ³ public static String getName(int index) { for (Color c : Color.values()) { if (c.getIndex() == index) { return c.name; } } return null; } // get set æ¹æ³ public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } } ### ç¨æ³åï¼è¦çæä¸¾çæ¹æ³ public enum Color { RED("红è²", 1), GREEN("绿è²", 2), BLANK("ç½è²", 3), YELLO("é»è²", 4); // æååé private String name; private int index; // æé æ¹æ³ private Color(String name, int index) { this.name = name; this.index = index; } //è¦çæ¹æ³ @Override public String toString() { return this.index+"_"+this.name; } } ### ç¨æ³äºï¼å®ç°æ¥å£ public interface Behaviour { void print(); String getInfo(); } public enum Color implements Behaviour{ RED("红è²", 1), GREEN("绿è²", 2), BLANK("ç½è²", 3), YELLO("é»è²", 4); // æååé private String name; private int index; // æé æ¹æ³ private Color(String name, int index) { this.name = name; this.index = index; } //æ¥å£æ¹æ³ @Override public String getInfo() { return this.name; } //æ¥å£æ¹æ³ @Override public void print() { System.out.println(this.index+":"+this.name); } } ### ç¨æ³å ï¼ä½¿ç¨æ¥å£ç»ç»æä¸¾ public interface Food { enum Coffee implements Food{ BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO } enum Dessert implements Food{ FRUIT, CAKE, GELATO } }