package myenum;
public enum Day {
//JDK1.5 之后可以直接定义enum类型并且直接继承Enum(java.lang包)
//自己定义的enum类型不能在谢extends 单是可以实现
//Enum类型
//有两个属性
//name ----> 枚举对象的名字 name() 获取 name 属性
//ordinal ----> 枚举对象在类在类中罗列的顺序 类似index 也是0开始 ordinal()回去序号
/*
一些常用的方法
valueOf() 通过给定的name获取对应的枚举对象
values() 获取全部的枚举对象 ----> 返回一个数组 Day[]
compareTo() 可以比较两个枚举对象 int
toString() 由于这个方法没有final修饰 可以覆盖重写
**/
//相当于描述了7个当前类的对象
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;
/*
我们可以在enum中描述自己的一些属性或者方法
必须在enum类中第一行 描述下枚举的样子 最后分号结束
可以定义自己的属性
类创建的过程中 帮我们创建枚举类型的对象
需要给枚举类型提供对应样子的构造方法 构造方法只能private修饰
**/
}
package myenum;
/**
*@auther WangZhi
*@date 2019/8/7 14:09
*/
public class Test {
public static void main(String[] args) {
MyDay Myday = MyDay.monday;
//枚举类方法
Day day = Day.monday;
//day--->枚举类型的对象 默认继承Object
//除了继承Object类的方法,还有一些 证明我们自己创建的enum类型 默认继承Enum
//我们自己定义的每一个enum类型 都会默认继承Enum 间接继承Object
Day[] days = Day.values();
for (Day d : days) {
System.out.println(d.name()+"--"+d.ordinal());
/*
输出:
monday--0
tuesday--1
wednesday--2
thursday--3
friday--4
saturday--5
sunday--6
*/
}
Day day1 = Day.valueOf("monday");
System.out.println(day1.name()+"--"+day1.ordinal());
//输出: monday--0
//输入一个字符串monday 输出对应的信息
Scanner input = new Scanner(System.in);
System.out.println("请输入一个星期的英文单词:");
String key = input.nextLine();
Day day2 = Day.valueOf(key);
switch (day2) {
case monday:
System.out.println("您输入的是星期一");
break;
case tuesday:
System.out.println("您输入的是星期二");
break;
case wednesday:
System.out.println("您输入的是星期三");
break;
case thursday:
System.out.println("您输入的是星期四");
break;
case friday:
System.out.println("您输入的是星期五");
break;
case saturday:
System.out.println("您输入的是星期六");
break;
case sunday:
System.out.println("您输入的是星期日");
break;
default:
System.out.println("输入错误");
}
}