İçeriğe geç

Enum (Sabit Değerler)

enum (enumeration), sabit değerleri (constants) gruplamak için kullanılan özel bir veri tipidir.
Örneğin haftanın günleri, aylar, renkler gibi sabit setleri temsil eder.

📦 Paket: java.lang (otomatik import edilir)


public enum Gun {
PAZARTESI, SALI, CARSAMBA, PERSEMBE, CUMA, CUMARTESI, PAZAR
}
Gun bugun = Gun.PAZARTESI;
System.out.println(bugun); // PAZARTESI

💡 Enum değerleri büyük harfle yazılır (Java konvansiyonu).


Tüm enum değerlerini listelemek için values() metodu kullanılır.

for (Gun g : Gun.values()) {
System.out.println(g);
}

Çıktı:
PAZARTESI
SALI
CARSAMBA


Gun bugun = Gun.CUMA;
switch (bugun) {
case PAZARTESI:
System.out.println("Haftanın ilk günü!");
break;
case CUMA:
System.out.println("Hafta sonuna az kaldı!");
break;
case PAZAR:
System.out.println("Tatildesin!");
break;
default:
System.out.println("Normal gün...");
}

🔹 5. Enum İçinde Özellik (Field) ve Metot Tanımlama

Section titled “🔹 5. Enum İçinde Özellik (Field) ve Metot Tanımlama”

Enum’lar sınıf benzeri yapılardır, içinde değişken ve metot tanımlanabilir.

public enum Renk {
KIRMIZI("#FF0000"),
YESIL("#00FF00"),
MAVI("#0000FF");
private String hex;
Renk(String hex) {
this.hex = hex;
}
public String getHex() {
return hex;
}
}
Renk r = Renk.KIRMIZI;
System.out.println(r.getHex()); // #FF0000

Enum’lar toString() gibi metotları ezebilir.

public enum Durum {
BASARILI {
public String toString() { return "İşlem başarılı!"; }
},
HATA {
public String toString() { return "Bir hata oluştu!"; }
}
}
System.out.println(Durum.BASARILI); // İşlem başarılı!

Enum constructor’ları private olmalıdır. (Java bunu otomatik olarak uygular.)

public enum Seviye {
DUSUK(1), ORTA(2), YUKSEK(3);
private int kod;
Seviye(int kod) {
this.kod = kod;
}
public int getKod() {
return kod;
}
}
System.out.println(Seviye.YUKSEK.getKod()); // 3

Gun g1 = Gun.PAZARTESI;
Gun g2 = Gun.CUMA;
System.out.println(g1.equals(g2)); // false
System.out.println(g1.compareTo(g2)); // -4 (pozisyon farkı)

Her enum değeri, sıralama numarasına (index) sahiptir.

Gun g = Gun.CARSAMBA;
System.out.println(g.ordinal()); // 2

💡 Sıralama 0’dan başlar.


public class EnumOrnek {
public enum Gun {
PAZARTESI, SALI, CARSAMBA, PERSEMBE, CUMA, CUMARTESI, PAZAR
}
public static void main(String[] args) {
Gun bugun = Gun.CUMARTESI;
switch (bugun) {
case CUMARTESI:
case PAZAR:
System.out.println("Hafta sonu!");
break;
default:
System.out.println("Çalışma günü...");
}
}
}

ÖzellikAçıklamaÖrnek
enumSabit değer kümesini tanımlarenum Gun { PAZARTESI, SALI }
values()Tüm değerleri dönerGun.values()
ordinal()Sıra numarasını verirGun.CUMA.ordinal()
switchEnum ile kullanılabilirswitch(Gun.CUMA)
Metot / FieldEnum içinde tanımlanabilirRenk.KIRMIZI.getHex()

💡 Not: Enum’lar, sabit değer kümelerini güvenli ve okunabilir şekilde temsil etmek için final static sabitlere göre çok daha güçlüdür.