枚举的定义和使用

枚举
在JDK 1.5时推出枚举类型

什么是枚举
就是表示有几个固定的值
星期,月份,季节,性别,红绿灯等等
和常量类似 用来保护系统的安全性和提高了含义确定性

枚举的格式

    Enum 枚举名{
    }

枚举的调用
在定义User类时
定义成员变量需如下定义:

public class User {
        //类的成员变量---属性
        private String username;
        private Grade userGrade;

枚举的使用步骤
1.定义一个枚举
2.在员工类使用枚举类型
3.枚举的名称,成员使用一个确定的值

//定义一个枚举表示星期一到星期天
public enum WeekDay{
    //枚举的成员
    MON,TUE,WED,THU,FRI,SAT,SUN;(如果下面没有语句分号可以省略)
}

1.1 枚举注意事项

  1. 定义枚举类要用关键字 enum
  2. 所有枚举类都是 Enum 的子类
  3. 枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
  4. 枚举类可以有构造方法,但必须是private的,它默认的也是 private 的。枚举项的用法比较特殊:枚举(“”);
    1.2 枚举常用方法

  5. String name()

  6. int ordinal()
  7. T valueOf(Class type,String name)
  8. values()
    此方法虽然在 JDK 文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便

代码:

public class Demo {

public static void main(String[] args) {
//method01();
//Scanner sc = new Scanner(System.in);
//System.out.println("请输入您出生的季节:");
//String next = sc.next();
//
//// 将季节字符串转成季节枚举
//Season valueOf = Season.valueOf(next);
//
//System.out.println("用户出生在: ");
//valueOf.sayHello();
//System.out.println(valueOf.name());
//System.out.println(valueOf.ordinal());
// values()拿到枚举中所有的成员
// 遍历枚举的所有成员
Season[] values = Season.values();
for (Season season : values) {
season.sayHello();
System.out.println(season.name());
}
}

private static void method01() {
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER);
String name = Season.WINTER.name();
int ordinal = Season.WINTER.ordinal();
System.out.println("name: " + name);
System.out.println("ordinal: " + ordinal);
}
}

public enum Season {
//SPRING, SUMMER, AUTUMN, WINTER;
// 枚举有构造方法后的使用方式
// 成员后面(参数)
SPRING("春天花会开"), SUMMER("夏天下开水"), AUTUMN("秋天菊花开"), WINTER("冬天血花开");
private String desc;
// 枚举的构造方法需要私有
private Season(String desc) {
this.desc = desc;
}
public void sayHello() {
System.out.println("Hello: " + desc);
}
}

1.3 总结:

枚举表示几个固定的的值
1. 作为类的成员变量
2. 可以放到 switch 中匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值