java枚举类一般用来定义有限个,确定的常量。
和 static final 是一样的效果
static表明这个属性是类层面的,只有一个,所有的实例化对象都共用这一个,但是可以修改。
final属性不能修改,是一个常量。
枚举类更加直观,类型安全。使用常量则会有以下几个缺陷:
1. 类型不安全。若一个方法中要求传入季节这个参数,用常量的话,形参就是int类型,开发者传入任意类型的int类型值就行,但是如果是枚举类型的话,就只能传入枚举类中包含的对象。
2. 没有命名空间。开发者要在命名的时候以SEASON_开头,这样另外一个开发者再看这段代码的时候,才知道这四个常量分别代表季节。
语法规则
所有的枚举都继承自java.lang.Enum类
示例
public enum Color {
RED, GREEN, BLANK, YELLOW
}
public static void main(String[] args) {
System.out.println(Color.GREEN);//输出为:GREEN
System.out.println( isRed( Color.BLANK ) ) ; //结果: false
System.out.println( isRed( Color.RED ) ) ; //结果: true
}
static boolean isRed( Color color ){
if ( Color.RED.equals( color )) {
return true ;
}
return false ;
}
常用的函数
Color[] colors = Color.values();//.values()返回对象数组,方便遍历所有的枚举类
for (int i = 0; i < colors.length; i++) {
System.out.println(colors[i]);
}
//输出:
RED
BLUE
......
Color color1 = Color.valueOf("YELLOW");
// 创建一个color枚举类对象,去找Color枚举类中名字是YELLOW的属性,找到的话就令
// color1 = Color.YELLOW;
//找不到就抛异常 Exception in thread "main" java.lang.IllegalArgumentException: No enum constant com.Color.YELLOW
//
部分内容摘自
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92906.html