枚举

Java枚举是类类型,不过创建枚举类型不是使用关键字class而是enum

枚举类型有构造函数,建立每个枚举常量时都要调用该构造函数。

不能使用new实例化一个枚举。

枚举声明不能加finalabstract

如果枚举不是嵌套在一个class内部,那么枚举的作用域有public和默认两种。如果枚举嵌套在一个class内部,那么枚举的作用域有publicprotectedprivate和默认四种。这一点和class一样。

枚举不能嵌套在枚举内部。

枚举不能是超类,也就是说枚举不能被继承。

枚举不能继承另一个类(但枚举会自动继承一个类java.lang.Enum)。java.lang.Enum是一个抽象类,不是枚举。

所有枚举类型自动包括两个预定义方法:

public static enum-type[] values()

返回包含一列枚举常量的数组。

public static enum-type valueOf(String str)

返回其值与所传递的str中的字符串相对应的枚举常量。

注意,java.lang.Enum并没有这两个方法。

 

枚举最简单的形式就是一个命名常量的列表,这些常量称之为枚举常量

枚举常量隐身声明为枚举的公有、静态成员,且类型就是声明的枚举类型。这些常量被称为“自类型化的”,“自”在此指一个封闭枚举。

每一个枚举常量是它的枚举类型的一个对象。

对枚举类型定义的任何实例变量,每一枚举常量都具有一个它们自己的副本。(可以以类和对象的关系来理解)

枚举常量的声明要放在枚举类型体的最前面。

枚举常量名称不能重复。

两个枚举常量可使用关系运算符“==”来表示经过比较二者相等。(可以以两个普通类对象的比较来理解。)

输出枚举常量将会调用枚举类型的toString()方法,默认情况下,会输出枚举常量的名称。但如果覆盖了toString()方法,将输出toString()返回的字符串。(可以对象的toString()来理解)

 

枚举值可以用来控制switch语句,此时所有case语句必须使用来自switch表达式所使用的同一个枚举类型的常量。不允许使用枚举类型名来限定case语句中的常量,就是说,如果MALE是枚举类型Gender的枚举常量,那么在case语句中只能写MALE,而不能写Gender.MALE

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值