Day 33 学习分享 - 枚举

1. 枚举概念

​ 枚举就是[有限实现个数]的类型

​ 例如:

​ 电影类型:

​ 科幻片, 爱情片, 剧情片, 动作片…

​ 图书类型:

​ 历史类, 科幻类, 传记类, 教材类…

​ 枚举其实就是一个特殊的类, 可以有成员变量, 方法, 实现一个或多个接口, 定义自己的构造方法

​ 一个Java源文件中最多只能定义一个public访问权限的枚举类, 并且该Java源文件也必须和该枚举类的类名相同

2. 定义枚举类
enum关键字

public enum Direction {
	
    FRONT, BEHIND, LEFT, RIGHT;
}

说明:
	每个枚举选项之间用逗号隔开
    如果枚举没有构造方法, 方法等, 在最后一个枚举选项后面可以不用打分号
    但是如果枚举类还有其他成员, 那么必须在最后一个枚举项后方加分号
3. 枚举例子
public enum Direction {
	
    FRONT, BEHIND, LEFT, RIGHT;
}
public class Test {

	public static void main(String[] args) {

		Direction d = Direction.FRONT;
		switch (d) {
		case FRONT:
			System.out.println("前面");
			break;
		case BEHIND:
			System.out.println("后面");
			break;
		case LEFT:
			System.out.println("左面");
			break;
		case RIGHT:
			System.out.println("右面");
			break;
		default:
			System.out.println("错误的方向");
		}
		Direction d1 = d;
		System.out.println(d1);
	}
}
4. 常用API
	int compareTo(E e)
        比较两个枚举常量谁大谁小,其实比较的就是枚举常量在枚举类中声明的顺序
        例如FRONT的下标为0,BEHIND下标为1,那么FRONT小于BEHIND
        
	boolean equals(Object o)
        比较两个枚举常量是否相等
        
	int hashCode()
        返回枚举常量的hashCode
        
	String name()
        返回枚举常量的名字
        
	int ordinal()
        返回枚举常量在枚举类中声明的序号,第一个枚举常量序号为0
        
	String toString()
        把枚举常量转换成字符串
        
	static T valueOf(Class enumType, String name)
        把字符串转换成枚举常量

5. 枚举的属性
5.1 枚举构造方法
public enum Direction {
	
	//在枚举常量后面必须添加分号,因为在枚举常量后面还有其他成员时,分号是必须的。枚举常量必须在枚举类中所有成员的上方声明。
	FRONT, BEHIND, LEFT, RIGHT;
	
	//枚举类的构造器不可以添加访问修饰符,枚举类的构造器默认是private的。但你自己不能添加private来修饰构造器。
	Direction(){
		System.out.println("hello");
	}
}

5.2 枚举的方法
public enum Direction {

	FRONT, BEHIND, LEFT, RIGHT;

	Direction() {
		System.out.println("hello");
	}

	//给枚举类添加方法
	public void fun() {
		System.out.println("hello Enum!");
	}
}

5.3 枚举的成员属性
public enum Direction {

	FRONT("前面"), BEHIND("后面"), LEFT("左面"), RIGHT("右面");

	Direction() {
		System.out.println("hello");
	}

	// 给本类添加一个实例属性prop
	//为本类设置一个有参构造器,本类只有这一个构造器,那么说明在声明枚举常量时必须调用本构造器。每个常量都会传递一个字符串给自己的explain属性。
	private String prop;

	Direction(String prop) {
		this.prop = prop;
	}
    
	public String getProp() {
		return prop;
	}

	public void setProp(String prop) {
		this.prop = prop;
	}

	// 给枚举类添加方法
	public void fun() {
		System.out.println("hello Enum!");
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值