学习内容:
1、枚举定义
枚举的关键字是 enum ,定义枚举公式为: public enum 枚举名字 ( )
例:public enum Color { RED, GREEN , BLACK ,YELLOW ; }
2、使用 switch 打印枚举
1 package day01; 2 public enum Color { 3 RED,GREEN,BLACK,YELLOW ; 4 public static void main(String[] args) { 5 Color c= Color.RED; 6 switch(c) { 7 case RED: 8 System.out.println("红色"); 9 break; 10 case GREEN: 11 System.out.println("绿色"); 12 break; 13 case BLACK: 14 System.out.println("黑色"); 15 break; 16 case YELLOW: 17 System.out.println("黄色"); 18 break; 19 } 20 } 21 }
代码可读性更强
3、在枚举中定义构造方法
在枚举中定义构造方法,必须使枚举中的变量形式与构造方法的形式保持一致
1 package day01; 2 public enum Color { 3 RED("红色"),GREEN("绿色"),BLACK("黑色"),YELLOW ("黄色"); 4 //成员变量 5 private String name; 6 //构造方法 7 private Color(String name) { 8 this.name =name; 9 } 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.name=name; 15 } 16 public static void main(String[] args) { 17 Color c=Color.RED; 18 System.out.println(c.name); 19 } 20 }
注:枚举中的构造方法必须是 private
4、枚举中实现接口
所有的枚举都继承自 Java . lang . Enum 类 ,因为 Java是单继承关系,所以枚举不能继承其他类,但是可以实现接口
1 package day01; 2 public enum Color implements H { 3 RED("红色"),GREEN("绿色"),BLACK("黑色"),YELLOW ("黄色"); 4 //成员变量 5 private String name; 6 //构造方法 7 private Color(String name) { 8 this.name =name; 9 } 10 public String getName() { 11 return name; 12 } 13 public void setName(String name) { 14 this.name=name; 15 } 16 @Override 17 public void get() { 18 System.out.println("get..."); 19 } 20 public static void main(String[] args) { 21 Color c=Color.RED; 22 c.get(); 23 } 24 } 25 interface H{ 26 void get(); 27 }
结果为:get ...
5、在枚举中定义抽象方法
想在枚举中定义抽象方法,则枚举中的每个变量必须实现抽象方法
1 package day01; 2 public enum Color { 3 RED{ 4 public void get() { 5 System.out.println("红色"); 6 } 7 },GREEN{ 8 public void get() { 9 System.out.println("绿色"); 10 } 11 },BLACK{ 12 public void get() { 13 System.out.println("黑色"); 14 } 15 },YELLOW{ 16 public void get() { 17 System.out.println("黄色"); 18 } 19 }; 20 public abstract void get(); 21 }
遇到的问题:
什么是接口?
https://www.cnblogs.com/libinhong/p/10990347.html
https://www.runoob.com/java/java-interfaces.html
明天要学习的内容:
4.7综合实例 4.9 上机练习