枚举类可用于定义常量
ch01
package edu.nf.demo.ch01; /** * * 枚举类型 */ public enum Color { /** * 红色 */ RED, /** * 黄色 */ YELLOW, /** * 蓝色 */ BLUE, /** * 绿色 */ GREEN, /** * 黑色 */ BLACK }
ch01
public class Main { public static void main(String[] args) { //test1(); test2(Color.RED); //test3(Color.RED); } private static void test1(){ //Color.RED得到的是一个Color枚举元素的实例 System.out.println("枚举实例:"+Color.RED); System.out.println("枚举元素名称:"+Color.RED.name()); System.out.println("枚举元素下标:"+Color.BLUE.ordinal()); System.out.println(Color.BLUE); System.out.println(Color.BLUE.name()); System.out.println(Color.BLUE.ordinal()); System.out.println("---------------"); for (Color value : Color.values()) { System.out.println(value); } } private static void test2(Color color){ System.out.println(color); switch (color) { case RED: System.out.println("This is red color"); break; case BLUE: System.out.println("This is blue color"); break; default: System.out.println("no color"); } } private static void test3(Color color){ System.out.println(color); if(color.equals(Color.RED)){ System.out.println("This is red color"); }else if(color.equals(Color.BLUE)){ System.out.println("This is blue color"); }else{ System.out.println("no color"); } } }
ch02
public enum Color { /** * 红色 */ RED(0), /** * 黄色 */ YELLOW(1), /** * 蓝色 */ BLUE(2), /** * 绿色 */ GREEN(3), /** * 黑色 */ BLACK(4) ; //分隔符 //声明一个实例变量 private Integer color; //构造方法 Color(Integer color){ this.color = color; } //提供一个get方法用于获取color变量的值 public Integer getColor() { return color; } }
ch02
public class Main { public static void main(String[] args) { System.out.println(Color.YELLOW.name()); System.out.println(Color.YELLOW.getColor()); } }
ch03
public enum Color { /** * 红色 */ RED{ @Override public void printColor() { System.out.println("This is red."); } }, /** * 蓝色 */ BLUE{ @Override public void printColor() { System.out.println("This is blue"); } }; /** * 在枚举中声明一个抽象方法, * 并且在每一个枚举元素中是使用匿名内部类的方式进行实现 */ public abstract void printColor(); }
ch03
public class Main { public static void main(String[] args) { Color.RED.printColor(); } }
ch04
public enum Color implements PrintInf { /** * 红色 */ RED{ @Override public void printColor() { System.out.println("This is red."); } }, /** * 蓝色 */ BLUE{ @Override public void printColor() { System.out.println("This is blue."); } } } public enum Color2 implements PrintInf { /** * 红色 */ RED("red"), /** * 蓝色 */ BLUE("blue") ; private String color; Color2(String color){ this.color = color; } @Override public void printColor() { System.out.println("Print color: " + color); } }
ch04
public interface PrintInf { void printColor(); } public class Main { public static void main(String[] args) { PrintInf pf = Color.RED; pf.printColor(); Color2.RED.printColor(); } }
ch05
public interface Food { /** * 开胃菜 */ enum Appetizer implements Food { /** * 沙拉 */ SALAD("沙拉"), /** * 汤 */ SOUP("汤") ; private String foodName; Appetizer(String foodName){ this.foodName = foodName; } public String getFoodName() { return foodName; } } /** * 主食 */ enum MainCourse implements Food { /** * 千层面 */ LASAGNE("千层面"), /** * 卷饼 */ BURRITO("卷饼") ; private String foodName; MainCourse(String foodName){ this.foodName = foodName; } public String getFoodName() { return foodName; } } } public class Main { public static void main(String[] args) { System.out.println(Food.Appetizer.SALAD.getFoodName()); } }