Enum (Sabit Değerler)
🎯 1. Enum Nedir?
Section titled “🎯 1. Enum Nedir?”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)
🔹 2. Basit Enum Tanımı
Section titled “🔹 2. Basit Enum Tanımı”public enum Gun { PAZARTESI, SALI, CARSAMBA, PERSEMBE, CUMA, CUMARTESI, PAZAR}Kullanımı:
Section titled “Kullanımı:”Gun bugun = Gun.PAZARTESI;System.out.println(bugun); // PAZARTESI💡 Enum değerleri büyük harfle yazılır (Java konvansiyonu).
🔹 3. Enum İçinde Döngü
Section titled “🔹 3. Enum İçinde Döngü”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
…
🔹 4. Enum ve switch-case Kullanımı
Section titled “🔹 4. Enum ve switch-case Kullanımı”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; }}Kullanımı:
Section titled “Kullanımı:”Renk r = Renk.KIRMIZI;System.out.println(r.getHex()); // #FF0000🔹 6. Enum İçinde Metot Override
Section titled “🔹 6. Enum İçinde Metot Override”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!"; } }}Kullanımı:
Section titled “Kullanımı:”System.out.println(Durum.BASARILI); // İşlem başarılı!🔹 7. Enum ile Constructor Kullanımı
Section titled “🔹 7. Enum ile Constructor Kullanımı”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; }}Kullanımı:
Section titled “Kullanımı:”System.out.println(Seviye.YUKSEK.getKod()); // 3🔹 8. Enum ile equals() ve compareTo()
Section titled “🔹 8. Enum ile equals() ve compareTo()”Gun g1 = Gun.PAZARTESI;Gun g2 = Gun.CUMA;
System.out.println(g1.equals(g2)); // falseSystem.out.println(g1.compareTo(g2)); // -4 (pozisyon farkı)🔹 9. Enum’un ordinal() Metodu
Section titled “🔹 9. Enum’un ordinal() Metodu”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.
🧩 10. Enum ile Örnek: Gün Mesajı
Section titled “🧩 10. Enum ile Örnek: Gün Mesajı”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ü..."); } }}🏁 Özet
Section titled “🏁 Özet”| Özellik | Açıklama | Örnek |
|---|---|---|
| enum | Sabit değer kümesini tanımlar | enum Gun { PAZARTESI, SALI } |
| values() | Tüm değerleri döner | Gun.values() |
| ordinal() | Sıra numarasını verir | Gun.CUMA.ordinal() |
| switch | Enum ile kullanılabilir | switch(Gun.CUMA) |
| Metot / Field | Enum içinde tanımlanabilir | Renk.KIRMIZI.getHex() |
💡 Not: Enum’lar, sabit değer kümelerini güvenli ve okunabilir şekilde temsil etmek için
final staticsabitlere göre çok daha güçlüdür.