values ve valueOf
- Java kursu
- Başlangıç
- Ders 101/116
- 4 dk
values() ve valueOf() ile enum işlemlerini öğrenirsin.
values tüm sabitleri döndürür
values() enumun tüm sabitlerini bir dizi olarak döndürür. valueOf(String) ise bir addan sabiti elde eder. Bunlar döngü ve dönüşüm için temel araçlardır.
for (Day d : Day.values()) {
System.out.println(d);
}
Day d = Day.valueOf("MONDAY");values() her çağrıda yeni bir dizi yaratır, ama küçük enumlarda bunun önemi yoktur. valueOf bulunamayan ad verirse IllegalArgumentException fırlatır; bu yüzden girdiyi denetlemek gerekir. İkisi birlikte enum üzerinde kolay gezinme sağlar.
for-each ile sabitleri gez
values() döndürdüğü dizi üzerinde for-each döngüsü kolayca kurulur. Bu, enumun tüm seçeneklerini listelemek için en sık kullanılan yoldur.
for (Day d : Day.values()) {
System.out.println(d + " " + d.ordinal());
}Döngü sırası tanımlanma sırasıyla aynıdır; bu nedenle çıktı öngörülebilirdir. Menü seçeneklerini listelemek veya tüm durumları işlemek için bu düzenek çok elverişlidir. ordinal() ile sıra numarasına da erişebilirsin.
Uygulama Tüm günleri listele
Day enumunu (MONDAY'den SUNDAY'ye) tanımla. values() ile bir for-each döngüsü kur ve her günü ayrı satıra yazdır.
Başlangıç kodu
public class Main {
public static void main(String[] args) {
// Day enumunu tanımla, values() ile döngü kur, yazdır
}
}
// Day enumunu buraya tanımlaÖrnek çözüm
enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
// main içinde:
for (Day d : Day.values()) {
System.out.println(d);
}Beklenen çıktı
MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Day.valueOf("MONDAY") çağrısı ne döndürür?
- Bir dizi
- "MONDAY" dizesi
- 0
- Day.MONDAY sabiti Doğru cevap
Açıklama: valueOf bir addan enum sabiti elde eder; dize değil sabitin kendisini döndürür.
2 Yöntemi dönüş türüyle eşleştir
| Kavram | Anlamı |
|---|---|
values() |
Day[] |
valueOf(String) |
Day |
ordinal() |
int |
name() |
String |
3 value Of ile sabit bul
Day d = Day.____("MONDAY");
Day d = Day.valueOf("MONDAY");
Açıklama: valueOf bir addan sabit üretir.