Java中的枚舉(enum)是一種存儲一組常量值的數據類型。您可以使用枚舉來存儲固定值,例如一周中的天,一年中的月等。
您可以使用關鍵字?enum定義枚舉,后跟枚舉的名稱為-enum?Days?{
SUNDAY,?MONDAY,?TUESDAY,?WEDNESDAY,?THURSDAY,?FRIDAY,?SATURDAY
}
枚舉中的方法和變量
枚舉類似于類,并且可以在其中包含變量,方法(僅具體方法)和構造函數。
假設我們在枚舉中的元素值為-enum?Scoters?{
ACTIVA125(80000),?ACTIVA5G(70000),?ACCESS125(75000),?VESPA(90000),?TVSJUPITER(75000);
}
要在其中定義一個構造函數,首先要聲明一個實例變量來保存元素的值。private?int?price;
然后,聲明一個初始化上面創建的實例變量的參數化構造函數。Scoters?(int?price)?{
this.price?=?price;
}
用另一個初始化一個枚舉的值
用另一個枚舉中的值初始化枚舉。聲明所需的枚舉作為實例變量。
使用參數化的構造函數對其進行初始化。
示例import?java.util.Scanner;
enum?State{
Telangana,?Delhi,?Tamilnadu,?Karnataka,?Andhrapradesh
}
enum?Cities?{
Hyderabad(State.Telangana),?Delhi(State.Delhi),?Chennai(State.Tamilnadu),?Banglore(State.Karnataka),?Vishakhapatnam(State.Andhrapradesh);
//實例變量
private?State?state;
//構造函數初始化實例變量
Cities(State?state)?{
this.state?=?state;
}
//顯示國家/地區的靜態方法
public?static?void?display(int?model){
Cities?constants[]?=?Cities.values();
System.out.println("State?of:?"+constants[model]+"?is?"+constants[model].state);
}
}
public?class?EnumerationExample?{
public?static?void?main(String?args[])?{
Cities?constants[]?=?Cities.values();
System.out.println("Value?of?constants:?");
for(Cities?d:?constants)?{
System.out.println(d.ordinal()+":?"+d);
}
System.out.println("Select?one?model:?");
Scanner?sc?=?new?Scanner(System.in);
int?model?=?sc.nextInt();
//調用枚舉的靜態方法
Cities.display(model);
}
}
輸出結果Value?of?constants:
0:?Hyderabad
1:?Delhi
2:?Chennai
3:?Banglore
4:?Vishakhapatnam
Select?one?model:
2
State?of:?Chennai?is?Tamilnadu