Veysel Uğur KIZMAZ

Java Enum Tanımlama

04.04.2012Okunma Sayısı: 11086Kategori: Java

 Bu makalemizde Java’da enum oluşturma şekillerini inceleyeceğiz.

 
Java’da enum oluşturmak için birkaç yöntem bulunmaktadır. Şimdi bunları inceleyelim.
 
public enum Gun {
      Pazartesi,
      Sali,
      Carsamba,
      Persembe,
      Cuma,
      Cumartesi,
      Pazar
}
 
Bu tanımlamada enum değerlerini virgülle ayırıp yazıyoruz. Karşısında herhangi bir değer ataması yoktur. Bu sebeple string olarak değerini alabiliriz.
 
 
public enum Ay {
      Ocak(1),
      Subat(2),
      Mart(3),
      Nisan(4),
      Mayis(5),
      Haziran(6),
      Temmuz(7),
      Agustos(8),
      Eylul(9),
      Ekim(10),
      Kasim(11),
      Aralik(12);
     
    private int ay;
    private Ay(int ay) {
        this.ay = ay;
    }
    public int getAy(){
      return this.ay;
    }
}
 
Bu tanımlamada enum içerisinde tuttuğumuz int ay değişkeni sayesinde enum’lara int türünde değer atayabiliyoruz. Değer atama işlemini private constructor sayesinde gerçekleştiriyoruz. getAy() fonksiyonu ile Ay enumundan oluşturduğumuz değişkenin değerini (int) almayı sağlamaktadır.
 
 
public enum Islem {
 
        Topla   { double sonuc(double sayi1, double sayi2) { return sayi1 + sayi2; } },
        Cikar   { double sonuc(double sayi1, double sayi2) { return sayi1 - sayi2; } },
        Carp   { double sonuc(double sayi1, double sayi2) { return sayi1 * sayi2; } },
        Bol   { double sonuc(double sayi1, double sayi2) { return sayi1 / sayi2; } };
       
        abstractdouble sonuc(double sayi1, double sayi2);
}
 
Bu tanımlamada Topla, Cikar, Carp, Bol isminde enumlar tanımlandı. Bu tanımlamalar içinde sonuc isminde birer fonksiyon da oluşturduk. Oluşturduğumuz bu fonksiyonları kullanabilmek için abstract sonuc fonksiyonunu oluşturuyoruz. Bu tanımlama, Islem tipinin Topla.sonuc() fonksiyonu sayesinde Topla enumunun içindeki sonuc fonksiyonunu çalıştırır.
 
Tanımladığımız enumları örnek bir uygulamada inceleyelim.
 
      public static void main(String[] args) {
            Gun gun = Gun.Pazartesi;
            System.out.println(gun);
            //
            Ay ay = Ay.Subat;
            System.out.println(ay.getAy());
            //
            Islem islem = Islem.Topla;
            System.out.println(islem.sonuc(10, 20));
      }
 
Ekran çıktısı aşağıdaki gibi olacaktır.
 
Pazartesi
2
30.0
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com