Java - 枚举 July 10,2019

枚举

 

JDK1.5之后可以定义enum类型

1.枚举常量的使用:

      利用枚举来定义  星期一 到 星期日  的常量


public
enum MyDay { monday,tuesday,wednesday,thursday,friday,saturday,sunday;   //先定义枚举对象 } public class Test { public static void main(String[] args){
      //可以直接引用 类名.枚举对象 MyDay myDay
= MyDay.friday; MyDay myDay1 = MyDay.monday; MyDay myDay2 = MyDay.saturday; System.out.println(myDay); System.out.println(myDay1); System.out.println(myDay2); } } 输出结果: friday monday saturday
返回类型 方法名称 方法说明
int compareTo(E o) 比较此枚举与指定对象的顺序
boolean equals(Object other) 当指定对象等于此枚举常量时,返回 true。
Class<?> getDeclaringClass() 返回与此枚举常量的枚举类型相对应的 Class 对象
String name()   返回此枚举常量的名称,在其枚举声明中对其进行声明
int ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)
String toString() 返回枚举常量的名称,它包含在声明中
static<T extends Enum<T>> T static valueOf(Class<T> enumType, String name) 返回带指定名称的指定枚举类型的枚举常量。

 

 

2.Enum类常用方法之valueOf(通过给定的name获取对应的枚举对象)
Enum类是枚举类默认继承的类,然后间接继承Object 

 
public enum MyDay {
    monday,tuesday,wednesday,thursday,friday,saturday,sunday;

}
import java.util.Scanner;

public class Test {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个星期的英文单词:");
        String key = input.nextLine();
        MyDay myDay = MyDay.valueOf(key);
    //枚举的switch 的应用
switch (myDay){ case monday: System.out.println("您输入的是星期1"); break; case tuesday: System.out.println("您输入的是星期2"); break; case wednesday: System.out.println("您输入的是星期3"); break; case thursday: System.out.println("您输入的是星期4"); break; case friday: System.out.println("您输入的是星期5"); break; case saturday: System.out.println("您输入的是星期6"); break; case sunday: System.out.println("您输入的是星期7"); break; default: System.out.println("出现错误"); } } }
 

 3.Enum类常用方法之values(获取全部对象)

public enum MyDay {
    monday,tuesday,wednesday,thursday,friday,saturday,sunday;

}

public class Test {
    public static void main(String[] args){

        MyDay myDay = MyDay.friday;
        //默认间接继承Object
        //除了Object类的方法 还有一些方法,默认继承Enum
        MyDay [] myDay1 = MyDay.values();
      //利用增强型for循环遍历
for(MyDay myDay2:myDay1){ //name() 获取枚举对象的名字 //ordinal() 获取枚举对象所罗列的顺序 System.out.println(myDay2.name() + "----"+myDay2.ordinal()); } } } 执行结果 monday----0 tuesday----1 wednesday----2 thursday----3 friday----4 saturday----5 sunday----6

 4.enum类中可以创建自己的属性和方法:

public enum Day{

    //描述了七个当前类的对象
    monday("星期一",1),tuesday("星期二",2),wednesday,thursday,friday,saturday,sunday;

    private String name;
    private int index;

    private Day(){}
    private Day(String  name,int index){
        this.name=name;
        this.index=index;
    }

    public String getName(){
        return this.name;
    }
    public void setName(String name){
        this.name=name;
    }

}

 

posted @ 2019-07-10 18:43  亿贫如洗杨道长  阅读(30)  评论(0编辑  收藏  举报