java_基础枚举与注解

枚举

枚举的引入的一个例子

//要求创建季节(Season) 对象
class Season{
private String name;
private String desc;//描述
//构造器
//.get
}

//上面要创建的Season对象有如下特点
//季节的值是有限的几个值(spring, summer, autumn, winter)
//只读,不需要修改。

public class CustomEnum {//自定义枚举类

	public static void main(String[] args) {

		//测试
		//若枚举类显式的定义了带参数的构造器, 则在列出枚举值时也必须对应的
		//传入参数
		System.out.println(Season.AUTUMN);
		System.out.println(Season.WINTER);
	}

}

class Season { //类,自定义枚举
	//1. 属性定义成私有属性 因为只读,不需要修改。
	//对象如果有实例变量,应该声明为private final,并在构造器中初始化
	private String name;// 季节名称
	private String description;// 季节描述

	//2. 获取读属性的方法
	public String getName() {
		return name;
	}

	public String getDescription() {
		return description;
	}

	//3. 私有化类的构造器,保证不能在类的外部创建其对象
	private Season(String name, String description) {//构造器,私有化
	//枚举类的使用 private final 修饰的属性应该在构造器中为其赋值
		this.name = name;
		this.description = description;
	}
	//4. 本质就是老师前面讲过的 单例模式的 饿汉式(4个实例)
	public final static Season SPRING = new Season("春天", "温暖");
	public final static Season SUMMER = new Season("夏天", "炎热");
	public final static Season AUTUMN = new Season("秋天", "凉爽");
	public final static Season WINTER = new Season("冬天", "寒冷");

	//重写toString()方法
	@Override
	public String toString() {
		return "季节名 " + name + " 特点" + description;
	}
	
	
}
//自定义类实现枚举-小结
//构造器私有化
//本类内部创建一组对象
//对外暴露对象(通过为对象添加public final static修饰符)
//可以提供 get方法,但是不要提供 set

提出枚举

1. jdk5.0之后出现的新特性
2. 枚举对应英文(enumeration, 简写 enum)
3. 枚举是一组常量的集合。
4. 可以这里理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。
enum Season2 {
	// public final static Season2 SPRING = new Season2("春天", "温暖");
	// 因为使用了enum ,因此上面的代码可以简化成如下形式
	SPRING("春天", "温暖"),
	SUMMER("夏天", "炎热"),
	AUTUMN("秋天", "凉爽"),
	WINTER("冬天", "寒冷");
	private Season2(String name, String description) {
		this.name = name;
		this.description = description;}
	private String name;// 季节名称
	private String description;// 季节描述
	public String getName() {
		return name;}
	public String getDescription() {
		return description;
	}}

enum关键字实现枚举注意事项

1. 当我们使用enum 关键字开发一个枚举类时,默认会继承Enum类

2.传统的 public static final Season2 SPRING = new Season2("春天", "温暖"); 简化成SPRING("春天", "温暖"), 这里必须知道,它调用的是哪个构造器.

3. 如果使用无参构造器 创建 枚举对象,则实参列表和小括号都可以省略当有多个枚举对
象时,使用,间隔,最后有一个分号结尾,枚举对象必须放在枚举类的行首.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值