1.什么是枚举:
枚举是Java1.5引入的新特性,通过关键字enum来定义枚举类。枚举类是一种特殊类,它和普通类一样可以使用构造器、定义成员变量和方法,也能实现一个或多个接口,但枚举类不能继承其他类.
2.枚举的特点:
实际枚举就是一种多例设计模式。所以首先要认识枚举,需要知道多例设计模式的特点:构造方法私有化,类内部需要提供若干个实例化对象,后面通 过statica方法返回。
3.声明枚举变量
enum Color { RED,YELLO,GREED } public class demo { public static void main(String[] args) { Color color=Color.RED; System.out.println(color); } }
注意:可以通过枚举类型名直接引用常量,如 Color.RED
4.枚举类
虽然JDK1.5提供了enum关键字,但是enum并不是一种新的结构,相反,它只是对一种类型的包装:使用enum关 键字定义的枚举类本质上就相当于一个Class定义的类,继承了java.lang.Enum父类。
以下代码可以看出Enum是抽象类。
Enum类中有以下方法:
1.构造方法:
protected Enum(String name, int ordinal)
2.取得枚举名字:
public final String name()
3.取得枚举序号
public final int ordinal()
4.返回一个枚举数组
values()
范例:上面方法的使用:
package 新特性.枚举;
enum Test1
{
Male ,Female,Bule
}
public class TestDemo {
public static void main(String[] args) {
System.out.println(Test1.Female.name()+" :"+Test1.Female.ordinal());
for (Test1 temp:Test1.values())
{
System.out.print(temp+" ");
}
}
}
结果:
5.switch用法
package 新特性.枚举;
enum Sex {
MALE,FEMALE
}
public class test {
public static void main(String[] args) {
switch(Sex.MALE) {
case MALE :
System.out.println("男人");
break ;
case FEMALE :
System.out.println("女人");
break ;
}
}
}
结果:
6.向枚举中添加新方法
虽然枚举等同于多例设计,但是多例设计是在一个类中产生的,所以该类中可以定义更多的属性或方法。所以在枚 举设计的时候考虑到这些因素,提出了更为全面的设计方案:可以在枚举中定义属性、方法、实现接口。
enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
//Red,Yello,greed
private String title;
private int num;
//构造方法私有化
private Color(String title, int num)
{
this.num=num;
this.title=title;
}
public String getTitle()
{
return title;
}
public int getNum()
{
return num;
}
}
public class demo {
public static void main(String[] args) {
// String color=Color.getName(1);
int color=Color.RED.getNum();
String c=Color.GREEN.getTitle();
System.out.println(color+" "+c);
}
}
结果:
面试:请解释enum与Enum区别:
enum是一个关键字,使用enum定义的枚举类本质上就相对于一个类继承了Enum这个抽象类而已。