枚举类是java语言中特殊的类,它是不能被实例化,在定义时,就要创建好要是用的对象,学过c语言的都知道,枚举的作用就是存储一些不变的,比较公认化的常量,比如月份,一年就只有十二个月,我们可以用枚举类型来定义,以后用的话直接取就行。还有星期,每周只有七天等等之类的东西!!!都说了java中的枚举是一种特殊的类,它的构造函数是私有的,好像之前说类的构造函数是私有的时候是在创建单例的时候说的。由此枚举类不得不在其内部实现声明并初始化好枚举对象,以后是不嫩进行改变得。因此,枚举类型的对象的类型是final类型。枚举类型使用时必须加上枚举类名。枚举对象是静态对象。因此,我们所定义的枚举对象类型为:
public static final enumobject;
具体用法:
enum Friut {
//这些枚举常量就是枚举对象,只要外部使用枚举类
//该枚举类就一次性这创建三个对象
APPLE, GRAPE, BANANA;
// 该构造函数不能被放在类中的首条语句,枚举类中的首条语句只能是枚举常量
private Friut() {
System.out.println("hello world!");
}
}
enum Person {
//当然,枚举常量可以再创建适合普通类一样被初始化,不过,必须在下面定义相应星灿的构造函数
P1("zhangsan", 1), P2("zhubajie", 4), P3("SunWukong",9);
private String name;
private int age;
private Person(String name, int age) {
this.name = name;
this.age = age;
}
public String toString() {
return this.name + "++++++++" + this.age;
}
}
//Enum is a type of special class ~~~
public class enums {
// 当虚拟机加载吗枚举对象时,会预先创建枚举对象
//在枚举类中实现的操作
// eg:public static final Friut APPLE = new Friut();
public static void main(String[] args) {
//枚举对象的访问,直接打印APPLE
System.out.println(Friut.APPLE);
//将所有枚举值都添加到枚举数组中
Friut[] friut = Friut.values();
for (int i = 0; i < friut.length; i++) {
System.out.println(friut[i]);
}
Person[] pArr = Person.values();
System.out.println("00000000");
for (Person p : pArr) {
System.out.println(p.toString());
}
}
}