枚举:
- enum 枚举名称{
- 对象;
- 构造;//private
- 方法()
- 抽象方法()
- 重写父类的方法
- 实现接口
- }
- 注意:
- 1.隐式的继承了java.lang.Enum类;
- 2.对于一个非抽象的枚举类来说,默认是final的;
- 3.枚举类的对象必须在枚举的第一行代码处显示列举出来
- 4.这些枚举对象都是public static final的
- 5.枚举类的构造器都是私有的
- 6.所有对象都实现了抽象方法,那么此枚举类就是一个抽象枚举类
特别注意:枚举输出时,需要转换枚举类型valueOf()
典例:枚举实现交通灯
package day8_14;
enum Traffic1{
RED{
@Override
void next() {
Traffic.YELLOW.next();
}
},YELLOW {
@Override
void next() {
Traffic.GREEN.next();
}
},GREEN {
@Override
void next() {
Traffic.RED.next();
}
};
abstract void next();
}
public class TestEnum32 {
public static void main(String[] args) {
Traffic t = Traffic.RED;
// for(int i=0;i<10;i++) {
while(true){
t=t.next();
System.out.println("下一个灯是"+t);
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
典例:枚举判断性别
package day8_14;
import java.util.Scanner;
enum Gender{
MALE,FEMALE;
}
public class TestEnum2 {
public boolean isMale(Gender g) {
if(g==Gender.MALE) {
return true;
}else {
return false;
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("输入性别:");
String sex = input.nextLine();
Gender g = Gender.valueOf(sex);//转换枚举类型
boolean r = new TestEnum2().isMale(g);
if(r) {
System.out.println("男的");
}else {
System.out.println("女的");
}
}
}