Java根据枚举调用不同方法
在Java编程中,枚举(Enumeration)是一种特殊的数据类型,用于定义一组固定的常量。枚举常常用于表示有限的选项,例如一周的天数、月份等。除了定义常量外,枚举还可以用于实现多态性,即根据不同的枚举值调用不同的方法。
枚举基础
在Java中,使用enum关键字定义枚举类型。下面是一个简单的示例:
enum Day {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
在上面的示例中,我们定义了一个名为Day的枚举类型,它包含了一周的所有天数。每个枚举常量都是Day类型的实例,可以像使用其他对象一样使用它们。
枚举方法
枚举类型可以包含方法,这些方法可以在每个枚举常量上调用。下面是一个示例,演示如何在枚举中定义方法:
enum Day {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY;
public void printGreeting() {
switch (this) {
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
System.out.println("Hello!");
break;
case FRIDAY:
System.out.println("TGIF!");
break;
default:
System.out.println("Weekend!");
break;
}
}
}
在上面的示例中,我们在枚举类型的定义末尾添加了一个分号,然后在分号后面定义了一个printGreeting()方法。这个方法根据不同的枚举值输出不同的问候语。
调用枚举方法
要调用枚举方法,我们需要使用枚举类型的名称和枚举常量的名称,中间用点号(.)分隔。下面是一个示例:
Day day = Day.MONDAY;
day.printGreeting();
在上面的示例中,我们首先创建了一个Day类型的变量day,并将其赋值为枚举常量MONDAY。然后,我们调用day对象的printGreeting()方法,根据枚举常量的值输出相应的问候语。
根据枚举调用不同方法
在某些情况下,我们希望根据枚举值的不同来调用不同的方法,这就涉及到了多态性的概念。下面是一个示例,演示如何根据枚举值调用不同的方法:
enum Day {
MONDAY {
public void printGreeting() {
System.out.println("Hello!");
}
},
TUESDAY {
public void printGreeting() {
System.out.println("Hello!");
}
},
WEDNESDAY {
public void printGreeting() {
System.out.println("Hello!");
}
},
THURSDAY {
public void printGreeting() {
System.out.println("Hello!");
}
},
FRIDAY {
public void printGreeting() {
System.out.println("TGIF!");
}
},
SATURDAY {
public void printGreeting() {
System.out.println("Weekend!");
}
},
SUNDAY {
public void printGreeting() {
System.out.println("Weekend!");
}
};
public abstract void printGreeting();
}
在上面的示例中,我们在每个枚举常量后面添加了一对花括号,并在花括号中重写了printGreeting()方法。这样,每个枚举常量都有了自己不同的实现。
要调用不同的方法,我们只需要根据枚举值创建对应的枚举常量,并调用其方法即可。下面是一个示例:
Day day = Day.FRIDAY;
day.printGreeting();
在上面的示例中,我们创建了一个Day类型的变量day,并将其赋值为枚举常量FRIDAY。