枚举类定义,实现接口与其常用方法

tech2022-09-13  97

枚举类定义,实现接口与其常用方法

一.枚举类定义:

步骤一:提供当前枚举类的对象,且多个对象之间用",“隔开,最后一个对象用”; "结束。示例:

enum Season { // 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象“;”结束 SPRING("春天", "春来花开"), SUMMER("夏天", "夏日炎炎"), AUTUMN("秋天", "秋风萧瑟"), WINTER("冬天", "寒风凛凛"); }

步骤二:声明枚举类(Season)对象的属性:private final 修饰。示例:

private final String seasonName; private final String seasonDesc;

步骤三:私有化类的构造器,并给对象属性赋值。示例:

private Season(String s1, String s2) { seasonName = s1; seasonDesc = s2; }

步骤四:其他需求:例如获取枚举类对象的属性。示例:

public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; }

二.枚举类常用方法:

1.toString():如果未重写该方法,则返回当前枚举类对象常量的名称;如果自己重写了,则根据自己的需求返回String类型的值。(未重写)运行示例:

Season season = Season.SUMMER; System.out.println(season.toString());

结果为:SUMMER

2.values():返回枚举类型的对象数组,该方法可以很方便地遍历所有的枚举值。示例:

Season[] values = Season.values(); for(int i = 0;i<values.length;i++) { System.out.println(values[i]); }

结果为:SPRING、SUMMER、AUTUMN、WINTER

3.valueOf(String str):可以把一个字符串转为对应的枚举类对象,要求字符串必须是枚举类对象。示例:

Season winterSeason = Season.valueOf("WINTER"); System.out.println(winterSeason);

结果为:WINTER

三.枚举类实现接口:

情况一:实现接口,在enum类中实现抽象方法;示例:

interface Info{ void show(); } enum Season implements Info{ // 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象“;”结束 SPRING("春天", "春来花开"), SUMMER("夏天", "夏日炎炎"), AUTUMN("秋天", "秋风萧瑟"), WINTER("冬天", "寒风凛凛"); public void show() { System.out.println(); } }

运行代码:

Season season = Season.AUTUMN; season.show();

说明此时可以调用show()方法;

情况二(重点):让枚举类的对象分别实现接口中的抽象方法;示例:

public class enum1 { public static void main(String[] args) { Season[] season = Season.values(); for(int i = 0;i<season.length;i++) { System.out.println(season[i]); season[i].show(); } } } interface Info{ void show(); } enum Season implements Info{ // 1.提供当前枚举类的对象,多个对象之间用“,”隔开,末尾对象“;”结束 SPRING("春天", "春来花开"){ public void show() { System.out.println("春天在哪里"); } }, SUMMER("夏天", "夏日炎炎"){ public void show() { System.out.println("夏天在哪里"); } }, AUTUMN("秋天", "秋风萧瑟"){ public void show() { System.out.println("秋天在哪里"); } }, WINTER("冬天", "寒风凛凛"){ public void show() { System.out.println("冬天在哪里"); } }; }

结果为:

SPRING春天在哪里 SUMMER夏天在哪里 AUTUMN秋天在哪里 WINTER冬天在哪里
最新回复(0)