java淺析列舉類
阿新 • • 發佈:2018-11-17
列舉類是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());
}
}
}