เรื่องๆ วุ่นๆ ของ enum ตอน 2
posted on 22 Oct 2009 11:04 by myjava
มาจากตอนที่แล้ว http://myjava.exteen.com/20091015/enum-1
แล้วนอกจากนี้ enum ในภาษา จาวา สามารถ มี Field และ Methode ได้ด้วยนะ เช่น
enum Grade{
A,B,C,D,E;
public float getPoint(){
switch(this){
case A:return(4.0f);
case B:return(3.0f);
case C:return(2.0f);
case D:return(1.0f);
case E:return(0.0f);
default:return(0.0f);
}
}
}
Grade grade = Grade.B;
System.out.println("Grade : "+grade.getPoint()+" Point.");
นี้คือตัวอย่างการใช้ enum แบบ method นะครับโดยเราสามารถคืนค่าออกนอก Object ได้ผ่านตัว getPoint ใน enum Grade หงิๆ
อีกตัวคือ Struct ใน enum ครับ มีวิธีการเขียนลักษณะนี้
enum MEnum{
field1("Hello"),
field2("java"),
field3("World");
private MEnum(String t){
this.txt = t;
}
public String getMsg(){
return(this.txt);
}
private String txt;
}
for(MEnum e : MEnum.values()){
System.out.println(e.getMsg());
}
แล้วนอกจากนี้เรายังสามารถ เข้าถึง Field ผ่าน method ที่ชื่อ valueOf ได้อีกด้วย ตัวอย่างเช่น
int id = 1;
MEnum enums = MEnum.valueOf("field"+id);
หงิๆ แจ่มกว่า final เห็นๆเลย หงิ