Java5.0 ile gelen Enum classı-enum keywordu nasıl kullanılır?
Java 1.4 den 1.5 e geçiş sırasında Sun microsystems uyarı yapmıştı. Hatırlayınınız var mı ? Ben hatırlıyorum. Java Derneğinin teee fi tarihinde yaptığı toplantıda bir konuşmacı çıkmış yeni özellikleri anlatırken (Generics falan) Bu konuya değinmişti.
Neydi? “1.4 den 1.5 e geçerken karşılaşabilceğiniz problem eğer source kodunuz içinde enum adında değişken kullandıysanız bu kelime yeni bir keyword oldu java bu keywordu algılayıp derleme ve execution sırasında problem çıkaracaktır.” Tırnak içinde yazdım gerçekden harfiyen bunlar denmedi ama ana konuşma buydu.
Bu enum dediğimiz şey nedir? Yenir mi? - Ya bizde bu java da ne varsa yemeye çalışıyoruz manyak mıyız neyiz?:)
Java 5.0 da, enum keywordu özel bir class tipi olarak karşımıza çıkar ve her zaman java.lang.Enum classından extend olur.
Örnek :
public enum Kart {
MACA,
KUPA,
KARO,
SINEK //opsiyonel olarak ; ile bitebilir
}
name() : Declare edilmiş değişken ismini String olarak döner. Kart.MACA.name()
ordinal() : Declare edildiği Class içindeki enumun pozisyonunu döner.
valueOf():enuma declare edilmiş değişken ismine String olarak lookup etmenize izin verir.Java 5.0 enumarationları switch de de kullanabilinir.
Unutmayın ki enum değerleri halen static class olarak declare edilmemesine rağmen static class üyesidir.
switch örneği:
import java.util.*;enum OperatingSystems {
windows, unix, linux, macintosh
}public class EnumExample1 {
public static void main(String args[])
{
OperatingSystems os; os = OperatingSystems.windows;
switch(os) {
case windows:
System.out.println(“You chose Windows!”);
break;
case unix:
System.out.println(“You chose Unix!”);
break;
case linux:
System.out.println(“You chose Linux!”);
break;
case macintosh:
System.out.println(“You chose Macintosh!”);
break;
default:
System.out.println(“I don’t know your OS.”);
break;
}
}
}
Ben şahsen en çok enum kullanımında Constant tanımlar gibi static final Değişkenler yerine gruplu tanımlama açısından güzel buluyorum.
public static enum MESSAGESTATUS{DEL,NEW,OK,BAD,READ,NOK}
Doomdeath Cinnetizma Hall ‘den bildirdi. Lütfen Monitörlerinizi kapatmayı unutmayınız.
cuvvppppppp (Monitör Kapanma efekti)
Social Bookmarking