枚举中的问题

		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);




注意,在switch中,不能使用枚举类名称,例如:“case Direction.FRONT:”这是错误的,因为编译器根据switch中d的类型决定了case中的类型必须为哪种类型。java规定case后面的枚举常量名只能使用unqualified name,switch后已经指定了枚举的类型,case后无需使用全名


所有枚举类都是Enum的子类
所有枚举类都默认是Enum类的子类,无需我们使用extends来继承。这说明Enum中的方法所有枚举类都可以的。
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):把字符串转换成枚举常量。


枚举类的构造器
  枚举类也可以有构造器,构造器不能给出访问修饰,而且默认都是private构造器。因为枚举类的实例不能让外界来创建!
enum Direction {
	FRONT, BEHIND, LEFT, RIGHT
	
	 Direction(){
		System.out.println("hello");
	}
}
[枚举常量后面必须添加分号,因为在枚举常量后面还有其他成员时,分号是必须的。
枚举常量必须在枚举类中所有成员的上方声明];
[举类的构造器不可以添加访问修饰符,枚举类的构造器默认是private的。但你自己不能添加private来修饰构造器。]

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值