枚举
枚举是一种特殊的类
修饰符 enum 枚举类名{
名称1,名称2,...;
其他成员...
}
public class Test{
public static void main(String []args)
{
//目标:认识枚举类
//A.X = null;
A a1= A.X;
A a2 = A.Y;
A a3 = A.Z;
}
}
public enum A
{
//常量,每个常量都是记住枚举类的一个对象的。
X,Y,Z;
}
public enum A{
X,Y,Z;
A(){
}
A (String name){
}
}
Compiled from "A.java"
public final class A extends java.lang.Enum<A>{
public static final A X = new A();
public static final A Y = new A();
public static final A Z = new A();
public A [] values();
public static A valueOf(java.lang.String);
}
• 枚举类的第一行只能罗列一些名称,这些名称都是常量,并且每个常量记住的都是枚举类的一个对象。
• 枚举类的构造器都是私有的(写不写都只能是私有的),因此,枚举类对外不能创建对象。
• 枚举都是最终类,不可以被继承。
• 枚举类中,从第二行开始,可以定义类的其它各种成员。
• 编译器为枚举类新增了几个方法,并且枚举类都是继承:java.lang.Enum类的,从enum类也会继承到一些方法。
多学一招 利用 枚举类也可以完成单例设计模式
枚举的常见应用场景
用来表示一组信息,然后作为参数进行传输
public enum Constant{
BOY,GIRL;
}
public class Test2{
public static void main(String []args)
{ //目标:掌握枚举类的使用场景
provideInfo(Constant.BOY);
}
public static void provideInfo(int sex)
{
switch (sex)
{
case BOY:
//男生
System.out.println("展示了一些信息给男生观看~~~");
break;
case GIRL:
System.out.println("展示了一些信息给女生观看~~~");
break;
}
}
}
选择定义一个常量来表示一组信息,并作为参数传输
参数值不受约束
选择定义枚举表示一组信息,并作为参数传输
代码可读性好,参数值得到了约束,对使用者友好,建议使用!