基础使用
public enum Size{
SMALL, MEDIUM, LARGE
}
枚举使用enum这个关键字来定义,size包括三个值,值一般是大写的字母,多个值直接以逗号分开。枚举可以定义为一个单独的文件,也可以定义在其他类内部
可以这样使用Size
Size siez= Size.MEDIUM
使用方法:
public class CompareTest {
@Test
public void test1() {
Season1 spring = Season1.SPRING;
System.out.println(spring);
}
}
enum Season1 {
// 1. 需要写在最前面
SPRING("春天", "1"),
SUMMER("夏天", "2"),
AUTUMN("秋天", "3"),
WINTER("冬天", "4"),
;
private final String seasonName;
private final String seasonDesc;
Season1(String a, String s) {
this.seasonName = a;
this.seasonDesc = s;
}
@Override
public String toString() {
return "seasonName = " + seasonName + "\n" +
"seasonDesc = " + seasonDesc;
}
}
枚举的好处
1)定义枚举的语法更为简单
2)枚举更为安全。一个枚举类型的变量要么为null,要么为枚举值之一
3)枚举类型自带很多便利的方法(如values、valueOf、toString等)
枚举实现接口
import org.junit.Test;
public class CompareTest {
@Test
public void test1() {
Season1 spring = Season1.SPRING;
spring.show();
}
}
// 接口
interface Info {
void show();
}
// 实现接口Info
enum Season1 implements Info {
// 1. 需要写在最前面
SPRING("春天", "1") {
@Override
public void show() {
System.out.println("我是傻逼");
}
},
SUMMER("夏天", "2") {
@Override
public void show() {
System.out.println("我是傻逼");
}
},
AUTUMN("秋天", "3") {
@Override
public void show() {
System.out.println("我是傻逼");
}
},
WINTER("冬天", "4") {
@Override
public void show() {
System.out.println("我是傻逼");
}
},
;
private final String seasonName;
private final String seasonDesc;
Season1(String a, String s) {
this.seasonName = a;
this.seasonDesc = s;
}
@Override
public String toString() {
return "seasonName = " + seasonName + "\n" +
"seasonDesc = " + seasonDesc;
}
}
![](https://img-blog.csdnimg.cn/img_convert/fbab61c25f22d3fce1c65dbac4c21c2b.png)