CodeBlanks Logo Icon CodeBlanks

Enum özellikleri

Enum sabitlerine özellik eklemeyi öğrenirsin.

Enum'a özellik ekle

Bir enum sabiti ek bilgi taşıyabilir. Bunun için enum içine alan ve yapıcı metot eklersin. Her sabit bu yapıcıya bir değer geçirir.

enum Coffee {
  SMALL("küçük"), LARGE("büyük");
  String label;
  Coffee(String label) {
    this.label = label;
  }
}

Yapıcı metot her zaman private olur; dışarıdan yeni sabit yaratılamaz. Sabitin yanına parantez içinde değer yazılır ve yapıcı bu değeri alır. Böylece her sabit kendine özgü veriyle gelir ve kod daha okunaklı olur.

Alanlara erişim

Enum sabitinin alanına nokta ile erişirsin. Yapıcı bu alanı doldurur; sen yalnızca okursun. Alan genelde final yapılır; çünkü sabitler değişmez.

Coffee c = Coffee.LARGE;
System.out.println(c.label); // büyük

Birden fazla alan da eklenebilir; örneğin bir etiket ve bir fiyat. Yapıcı parametre sırasına uyulmalıdır. Alanları public final yapmak dış erişime izin verir; private yapıp bir yöntemle döndürmek de yaygındır.

Uygulama Kahve etiketini yazdır

SMALL ve LARGE sabitlerinden oluşan bir Coffee enumu tanımla. Her sabit bir String label alsın (SMALL için küçük, LARGE için büyük). LARGE sabitinin etiketini yazdır.

Başlangıç kodu

Main.java
public class Main {
  public static void main(String[] args) {
    // Coffee enumunu tanımla, LARGE'ın etiketini yazdır
  }
}

// Coffee enumunu buraya tanımla

Örnek çözüm

Main.java
enum Coffee {
  SMALL("küçük"), LARGE("büyük");
  String label;
  Coffee(String label) { this.label = label; }
}
// main içinde:
System.out.println(Coffee.LARGE.label);

Beklenen çıktı

büyük

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Yapıcıya değer geçir

Soru
enum Coffee {
  SMALL("küçük"), LARGE("____");
  String label;
  Coffee(String label) { this.label = label; }
}
Cevap
enum Coffee {
  SMALL("küçük"), LARGE("büyük");
  String label;
  Coffee(String label) { this.label = label; }
}

Açıklama: LARGE sabiti 'büyük' etiketini alır.

2 Enum yapıcı metodu ne erişim düzeyinde olur?

  • public
  • private Doğru cevap
  • varsayılan (package)
  • protected

Açıklama: enum yapıcısı her zaman private'dir; dışarıdan yeni sabit yaratılamaz.

3 Kavramı açıklamasıyla eşleştir

Kavram Anlamı
label Sabitin etiketi
Coffee(String) Yapıcı metot
this.label Atama
SMALL("küçük") Değer geçirilir

Başlangıç bölümündeki tüm dersler