CodeBlanks Logo Icon CodeBlanks

Generic sınıf

<T> ile generic sınıf tanımlamayı öğrenirsin.

Generic sınıf

Bir generic sınıf, tür parametresiyle tanımlanan bir şablondur. class Box<T> { T value; } yazdığında T bir tür parametresidir; sınıfı kullanırken somut bir tür verirsin: Box<String> b = new Box<>();.

Bu sayede aynı sınıf hem String hem Integer hem de başka türler için tip-güvenli çalışır. Cast yok, ClassCastException riski azalır. Tür parametresi geleneksel olarak tek harfle yazılır: T (type), E (element), K/V (key/value).

Generic sınıf kullanımı

Bir generic sınıfı somut türle kullanmak için Box<String> b = new Box<>(); yazarsın. Sağ tarafın <> içi boş bırakılabilir; derleyici sol taraftan çıkarım yapar (diamond operator).

Alan ataması b.value = "Merhaba"; şeklinde yapılır. String s = b.value; yazdığında cast gerekmez; derleyici value'nun String olduğunu bilir. Farklı tür verirsen derleme hatası alırsın; bu generic'lerin en büyük gücüdür.

Uygulama Box<T> sınıfını tanımla

class Box<T> tanımla; içinde T value; alanı olsun. main içinde Box<String> b = new Box<>(); ile bir kutu oluştur, b.value = "Kitap"; ata ve System.out.println(b.value); ile yazdır.

Başlangıç kodu

Main.java
// Box<T> generic sınıfını tanımla

// main: Box<String> örneği oluştur, değer ata ve yazdır

Örnek çözüm

Main.java
class Box<T> {
    T value;
}

public class Main {
    public static void main(String[] args) {
        Box<String> b = new Box<>();
        b.value = "Kitap";
        System.out.println(b.value);
    }
}

Beklenen çıktı

Kitap

Soru ve cevaplar

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

1 Box<String> ifadesi neyi belirtir?

  • Bir dizi tanımladığını
  • Box sınıfının final olduğunu
  • String'i alt sınıf yaptığını
  • T parametresinin String olacağını Doğru cevap

Açıklama: < > içindeki tür, T parametresinin somut türüdür.

2 Generic sınıf bildirimini tamamla

Soru
class Box____ {
    T value;
}
Cevap
class Box<T> {
    T value;
}

Açıklama: <T> Box sınıfına bir tür parametresi verir.

3 Generic sınıf kavramlarını eşleştir

Kavram Anlamı
<T> Tür parametresi bildirimi
Box<String> Somut türle kullanım
<> Diamond operator
T value Generic alan

Orta seviye bölümündeki tüm dersler