Java枚举自定义方法教程
我们知道枚举是对已知的数据进行穷举,如果每个枚举对象里面有自己独特的操作我们可以让定义的枚举实现一个接口或者在枚举里面定义一个抽象方法。
枚举对象实现自定义方法详解
实现接口语法
enum 枚举名称 implements 接口名称{
枚举对象名{
// TODO 具体实现接口里面方法
}
}
定义抽象类语法
enum 枚举名称{
枚举对象名{
// TODO 具体实现抽象方法
}
public abstract 返回类型 方法名称();
}
接口实现案例
定义一个接口,里面定义了一个 printColor 方法:
package com.haicoder.net.enu;
public interface ColorInterface{
void printColor();
}
定义一个枚举类,实现接口:
package com.haicoder.net.enu;
public enum Color implements ColorInterface {
READ {
@Override
public void printColor(){
System.out.println("我是红色!");
}
}, BLUE {
@Override
public void printColor(){
//什么都不做
}
}, WRITE {
@Override
public void printColor(){
System.out.println("我是白色,我打印出来了。");
}
};
}
定义一个测试类
package com.haicoder.net.enu;
public class EnumTest{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)");
for (Color color : Color.values()) {
color.printColor();
}
System.out.println("结束");
}
}
运行结果如下:
我们看到,枚举实现接口后每个枚举元素都要实现接口里面的方法,在项目里面我们可以通过这样的方式对特定的枚举对象做定制化的操作。
抽象方法案例
定义一个枚举类,里面定义一个抽象方法,每个枚举元素具体实现抽象方法
package com.haicoder.net.enu;
public enum Color {
READ {
@Override
public void printColor(){
System.out.println("我是红色!");
}
}, BLUE {
@Override
public void printColor(){
//什么都不做
}
}, WRITE {
@Override
public void printColor(){
System.out.println("我是白色,我打印出来了。");
}
};
public abstract void printColor();
}
定义一个测试类:
package com.haicoder.net.enu;
public class EnumTest{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)");
for (Color color : Color.values()) {
color.printColor();
}
System.out.println("结束");
}
}
运行结果如下:
在枚举类里面定义一个抽象方法,那么定义的每个枚举对象都会实现这个抽象方法。效果和实现接口的效果一样,让每个枚举对象都有定制化效果。
Java枚举自定义方法总结
枚举类里面的每个枚举对象都可以有自定义的方法,其实现方式有两种,一种是实现一个接口,另外一个是在枚举类里面定义抽象方法。