1. 程式人生 > >java淺析列舉類

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()); } } }