枚举

枚举的使用场景

一个类的对象是有限且固定的

枚举入门

1.定义

public enum Season {
    SPRING,SUMMER,FAIL,WINTER;
    //其中每一个都相当于新创建了一个对象
    //public static Season SPRING = new Season();
}

2.使用
Season.SPRING

* 小结:
1.enum和class、interface的地位一样
2.类中的第一行是该类的实例对象,枚举类的所有实例都必须放在第一行(中间是逗号),不需使用new 关键字,
不需显式调用构造方法,并且会自动添加public static final修饰。
3.枚举类的构造器只能是私有的。

枚举定义属性以及方法

枚举类也可以定义属性以及方法,并且调用有参构造

1.定义
public enum Season {
    SPRING("春天"),SUMMER("夏天"),FAIL("秋天"),WINTER("冬天");
	
    //定义一个属性name
    private final String name;
    //私有构造
    private Season(String name){
	this.name = name;
    }
    //get方法
    public String getName() {
	return name;
    }

}

2.使用
Season.SPRING

示例:
System.out.println(Season.SPRING);//spring
System.out.println(Season.SPRING.name);//春天
System.out.println(Season.SPRING.getName());//春天

为什么选择使用枚举不使用静态常量

*.静态常量也可以达到枚举的效果,如
    public static final int SEASON_SPRING = 1;
    public static final int SEASON_SUMMER = 2;
    public static final int SEASON_FALL = 3;
    public static final int SEASON_WINTER = 4;
    
	//定义成枚举
    SPRING(1),SUMMER(2),FAIL(3),WINTER(4);

主要原因:
	public void test(Season season)
	public void test(int season)

	静态常量类型不安全,一个类需要传递的参数是Season,用常量的话,形参就是int类型,开发者传入任意类型的int类型值就行
	但是如果是枚举类型的话,就只能传入枚举类中包含的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值