枚举作用:
一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,可以直接使用枚举予以解决。
枚举类的定义格式:
enum 类名{
//枚举值
}
枚举类详解:
1. 枚举类也是一个特殊的类。
2. 枚举值默认的修饰符是public static final。
3. 枚举值就是是枚举值所属的类的类型, 然后枚举值是指向了本类的对象。
4. 枚举类的构造方法默认的修饰符是private的。
5. 枚举类可以定义自己的成员变量与成员函数。
6. 枚举类可以自定义构造函数,但是构造函数的修饰符必须是private。
7. 枚举类可以存在抽象的方法,但是枚举值必须要实现抽象的方法。
8. 枚举值必须要位于枚举类的第一个语句。
代码如下:
1 enum Sex{ 2 man("男") { //实现抽象方法 3 @Override 4 public void run() { 5 System.out.println("男人跑"); 6 } 7 },woman("女") { 8 @Override 9 public void run() { 10 System.out.println("男人追"); 11 } 12 }; 13 14 String value; //自定义属性 15 public void getValue(){ //自定义方法 16 System.out.println(this.value); 17 } 18 private Sex(String value) { //自定义构造方法 但是必须是private 19 this.value = value; 20 } 21 22 public abstract void run(); 23 } 24 25 public class DemoEnum { 26 27 public static void main(String[] args) { 28 Sex sex = Sex.man; 29 sex.getValue(); 30 sex.run(); 31 } 32 }
枚举类的使用
一般配合switc来使用:swit可以接收的参数类型为:byte char short int String枚举类型
代码示例如下:
1 enum Season{ 2 spring, 3 summer, 4 autumn, 5 winter 6 } 7 8 public class DemoEnum { 9 public static void main(String[] args) { 10 Season season = Season.spring; 11 switch (season) { 12 case spring: 13 System.out.println("春天……"); 14 break; 15 case summer: 16 System.out.println("春天……"); 17 break; 18 case autumn: 19 System.out.println("春天……"); 20 break; 21 case winter: 22 System.out.println("春天……"); 23 break; 24 default: 25 break; 26 } 27 } 28 }
注意:
case语句后面跟的枚举值,只需要单写枚举值即可,不需要再声明该 枚举值是属于哪个枚举类的。