java浅析枚举类

枚举类是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());
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41681241/article/details/84179540
今日推荐