Java5.0 ile gelen Enum classı-enum keywordu nasıl kullanılır?

enum, java May 29th, 2008

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
Add to: Mr. Wong Add to: Digg Add to: Del.icio.us Add to: Reddit Add to: StumbleUpon Add to: Slashdot Add to: Netscape Add to: Furl Add to: Yahoo Add to: Google Add to: Technorati Add to: Newsvine Add to: Ma.Gnolia



Başka Manyak Konular


Lütfen Yorumlarınızı bizimle paylaşın.

Leave a Reply

Site Navigation

Categories

Archives

Meta

Recent Enteries

Recent Comments

FireStats iconPowered by FireStats