JAVA’DA ENUM NEDİR, NE İŞE YARAR ?
Javada Enum nedir, ne işe yarar yazısına hoşgeldiniz.
Java da yada herhangi bir programlama dilinde sabit büyüklükte belirli alanlara sahipsek ya da daha iyi okunabilir bir koda sahip olmak için enum kullanırız.
Kısaca amacımız kod okunabilirliğini arttırmak, değer kümesini daraltmak, veri güvenliğini sağlayarak kodta oluşabilecek exception durumlarını handle etmek. Enum’lar java ‘ya jdk 1.5 versiyonu ile eklendi.
Örneğimiz Futbol sonuçlar olsun. Bir sonuc metodundan bize enum class yardımıyla 2 değişkenden a veya b takımının maçının durumunu döndürsün.
Misal Bir futbol maçında ne olur. A ve B takımı oynar. ya A Kazanır, Ya Beraberlik ya da B Kazanır. A biz isek ya Galibiyet ya da Mağlubiyet olur. A yani soldaki nesne biz olalım.
Result Enum ‘u :
public enum Result {
GALIBIYET("Galibiyet"),
MAGLUBIYET("Mağlubiyet"),
BEBARERLIK("Beraberlik");
String sonuc;
Result(String sonuc){
this.sonuc = sonuc;
}
}
public class Main {
public static void main(String[] args) {
Main main=new Main();
String sonuc = main.sonuc(4,5);
System.out.println("Sonuc : "+ sonuc);
}
private String sonuc(int x, int y){
if(x > y){
return Result.GALIBIYET.sonuc;
}else if(x < y){
return Result.MAGLUBIYET.sonuc;
}else{
return Result.BEBARERLIK.sonuc;
}
}
}
Sonuç burada MAGLUBIYET olur. Kod daha okunur oldu. Oluşabilicek hataları engelledik. Başka bir yerde kullanabileceğimiz bir result nesnemiz oldu.
Burada şunlarda olabilirdi. Şimdi bir değişiklik daha yapalım. Result Enum ‘umuz aynı.
Şimdi gelecek sonuc ‘a göre puan hesaplayalım. Önce maç sonucunu verdik. Soldaki takım yine biziz. (Yenilmek kaderimizde var sanırım 🙂 )
Önce sonuc ile ne olduğunuz hesaplıyoruz. Sonrasında puanı hesaplıyoruz.
Burada anlatmak istediğim kısma geliyoruz. Result enum olmasaydı ne yapardık ? Aşağıdaki kod ‘a bakmadan bunu düşünün. Ortada kesin ya 1 0 ‘lar dolanırdı, ya da String ‘ler kontrolü.
Şimdi birde aşağıdaki koda bakın. Ne ne olduğunu herkes biliyor. Okunabilirlik çok açık. Neyin ne olduğu açık. Hata ile karşılaşma durumumuz yok. Misal bu 3 seçenek dışında gelecek sonuç yok. Örnek çokca şekillendirilir.
public class Main {
public static void main(String[] args) {
Main main=new Main();
Result sonuc = main.sonuc(4,5);
System.out.println("Sonuc : "+ main.puanHesapla(sonuc));
}
private Result sonuc(int x, int y){
if(x > y){
return Result.GALIBIYET;
}else if(x < y){
return Result.MAGLUBIYET;
}else{
return Result.BEBARERLIK;
}
}
private int puanHesapla(Result result){
if(result.sonuc == Result.GALIBIYET.sonuc){
return 3;
}else if(result.sonuc == Result.MAGLUBIYET.sonuc){
return 0;
}else{
return 1;
}
}
}
Okuduğunuz için teşekkür ederim..




