1、概述,JDK1.5增加了枚举类型,可以使用enum来定义eg:
public enum Gender{
MALE,FEMALE;
}
其中每一个枚举元素都是该枚举类型的一个实例,使用和遍历
Gender gender = Gender.MALE; //使用
for(Gender s : Gender.values()) {//遍历
System.out.println(s);
}
2、Enum类和enum关键字的区别
public enum Color{
RED,BLUE;
}
3、获得枚举类型对象的两种方式:
String s = "RED";
Color red = Color.valueOf(s);
第二种方式:
Color red = Color.RED;
第一种方式是通过一个字符串的值来获得
对象的,只要我们改变字符串的值就随意改变要获得的对象.
public enum Color{
RED,BLUE;
private String name;
public String getName(){
return this.name;
}
}
5、枚举类型中定义构造方法
public enum Color {
RED("红色"),GREEN("绿色"),BLUE;
private String name;
public String getName(){
return this.name;
}
//一个参数构造器
Color(String name){
this.name = name;
}
//无参构造器
private Color(){
}
}
main:
public interface Sofa{
void sit();
}
第一种方式来实现接口
public enum Color implements Sofa{
RED("红色"),GREEN("绿色"),BLUE;
private String name;
public String getName(){
return this.name;
}
//一个参数构造器
Color(String name){
this.name = name;
}
//无参构造器
private Color(){
}
//枚举中单独实现,每一个枚举元素对象都可以调用到这个方法
public void sit(){
//....
}
}
第二种方式来实现接口
public enum Color implements Sofa{
//每一个枚举元素对象中单独实现这个接口中的抽象方法 将来每个枚举元素对象调用到的就是自己独立实现的这个sit方法
RED("红色"){
public void sit(){
//....
}
},
GREEN("绿色"){
public void sit(){
//....
}
},
BLUE{
public void sit(){
//....
}
};
private String name;
public String getName(){
return this.name;
}
//一个参数构造器
Color(String name){
this.name = name;
}
//无参构造器
private Color(){
}
}
7、枚举中定义抽象方法
public enum Color {
RED{
public String getInfo() {//RED中实现抽象方法
return "红色";
}
},
GREEN{
public String getInfo() {//GREEN中实现抽象方法
return "绿色";
}
},
BLUE{
public String getInfo() {//BLUE中实现抽象方法
return "蓝色";
}
};
public abstract String getInfo();//定义抽象方法
}
以上就是枚举的介绍