枚举类

枚举类

  1. 一个类中有个数有限且固定的对象
  2. 通过类名字直接访问对象
  3. private构造方法; public static final属性 = new 对象/常量
  4. JDK1.5版本之后可以直接定义enum类型
  5. 定义的枚举类直接继承Enum类(不允许继承其他的类),间接继承Object类

Enum

两个属性
name:表示当前枚举对象的名字
ordinal:枚举对象在类中的顺序(从0开始)
常用方法
valueof():通过给定的name获取对应的枚举对象
values():获取全部枚举对象----->返回一个枚举类型数组
compareTo():可以比较两个枚举对象
toString():没有final修饰,可以重写

MyDay.java

package myenum;

public class MyDay {
    //类似于单例
    //私有的构造方法
    private MyDay(){}
    //所有对象都是属性
    public static final MyDay monday = new MyDay();
    public static final MyDay tuesday = new MyDay();
    public static final MyDay wednesday = new MyDay();
    public static final MyDay thursday = new MyDay();
    public static final MyDay friday = new MyDay();
    public static final MyDay saturday = new MyDay();
    public static final MyDay sunday = new MyDay();
}

Day.java

package myenum;

public enum Day {
    //相当于描述了7个当前类的对象
    monday,tuesday,wednesday,thursday,friday,saturday,sunday
}

Test.java

package myenum;

public class Test {
    public static void main(String[] args){
        MyDay myday = MyDay.friday;//myday类中访问一个对象 7个
        Day day = Day.monday;//day相当于枚举类型的对象

        Day[] days = Day.values();//获取所有枚举对象
        for(Day d:days){
            System.out.println(d.name()+"----"+d.ordinal());
        }
    }
}

在switch中使用枚举

package myenum;
import java.util.Scanner;
public class Test1 {
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        System.out.println("请您输入一个星期的英文单词");
        String key = input.nextLine();
        Day day = Day.valueOf(key);
        switch (day){
            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("出现错误");
        }
    }
}

可以在enum类中描述一下自己的属性或者方法

必须在第一行描述枚举的样子
必须提供带有private的构造方法(可以重载)

package myenum;

public enum Day {
    //相当于描述了7个当前类的对象
    monday("星期一",0),tuesday,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;
    }
}

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值