当前位置: 首页> 科技> 数码 > java枚举

java枚举

时间:2025/9/5 17:29:11来源:https://blog.csdn.net/qq_65501197/article/details/139441485 浏览次数:2次

枚举介绍

        Java中的枚举(Enumeration 简写 Enum)是一组常量的集合,是一种特殊的类,用于表示固定数量的特定对象。

声明枚举

        共有两种方法可声明枚举:

一、自定义类实现枚举

1、将构造器私有化,防止通过构造器创建新对象。

2、去掉set相关方法,防止已有属性被修改

3、直接在类内部创建固定数量的静态对象,使得在外部类可直接调用该对象

4、枚举对象命名时,通常全部大写(符合常量的命名规范)

public class go {//主方法public static void main(String[] args) {System.out.println(pet.DOG.getName());//调用静态对象}
}class pet{private String name;private String food;//在类内部直接创建final静态对象,static方便调用,final防止被修改public static final pet DOG =new pet("小狗","骨头");private pet(String name, String food) {//构造器私有化this.name = name;this.food = food;}public String getName() {//去除相关的set方法return name;}public String getFood() {return food;}
}

二、使用enum关键字实现枚举 

        1、使用 enum 关键字代替 class 

        2、以DOG("小狗","骨头");代替public static final pet DOG =new pet("小狗","骨头");

        3、如需创建多个对象,则定义对象之间以","取代";"句尾再用";"结尾

        4、创建枚举对象必须放在枚举类的首行

public class go {//主方法public static void main(String[] args) {System.out.println(pet.DOG.getName());}
}enum pet{//使用 enum 关键字代替 class DOG("小狗","骨头"),//创建多个对象时以“,”取代“;”句尾再用";"结尾CAT("小猫","鱼干");//创建枚举对象必须放在枚举类的首行private String name;//后续代码保持不变private String food;private pet(String name, String food) {this.name = name;this.food = food;}public String getName() {return name;}public String getFood() {return food;}
}

注意事项

1、如果使用无参构造器创建枚举对象,则实参列表和括号都可以省略

enum pet{//枚举类DOG();//调用无参构造器DOG;//等同于DOG()private pet() {//默认无参构造器}
}

2、当使用enum关键字开发一个枚举类时,默认会继承Enum类

        即java.lang.Enum,继承后的类为 public static final 类名。自然也可以使用Enum类的相关方法

方法名描述
name得到当前枚举常量的名称(建议优先使用toString)
ordinal得到当前枚举常量的次序,表示第几个枚举对象(次序从0开始)
values

values方法返回枚举类数组,数组元素为定义的所有枚举对象

示例:CLASS myclass[]= CLASS.values();

valueof根据输入的值查找所在枚举类中是否存在以该值命名的对象,如果有则返回该对象,没有则报错
public class go {//主方法public static void main(String[] args) {System.out.println(pet.valueOf("DOG"));//正确,输出类名DOGSystem.out.println(pet.valueOf("CAT"));//错误,系统报错}
}enum pet{DOG("小狗","骨头");private String name;private String food;//后续相关方法
}
compareTo将两个枚举对象的次序相减,其次序等同于ordinal所得次序
public class go {//主方法public static void main(String[] args) {System.out.println(pet.DOG.compareTo(pet.CAT));//输出-1}}enum pet{DOG,CAT;//DOG次序为0,CAT次序为1
}

3、使用enum关键字后,就不能再继承其他类

        因为enum会隐式的继承Enum类,而java是单继承机制。

4、枚举和普通类一样,也可以实现接口

public class go {//主方法public static void main(String[] args) {WEEK.FIRST.show();//调用枚举对象的show方法}
}
interface API{//定义接口void show();
}
enum WEEK implements API {//枚举类实现接口FIRST;//创建枚举对象@Overridepublic void show() {//实现接口种的方法System.out.println("说点什么");}
}

关键字:java枚举

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: