CodeBlanks Logo Icon CodeBlanks

Generic sınıf

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

Generic sınıf nedir?

Bir generic sınıf, tür parametresi alan bir sınıftır. Tür parametresi açı köşeli parantez içinde yazılır: <T>. T bir yer tutucudur; sınıf kullanılırken gerçek türle değişir.

Örnek: class Box<T> { T value; Box(this.value); }. Burada Box her türle çalışır: Box<int>, Box<String>. Tür parametresi, sınıfın tek tanımını birçok tür için yeniden kullanılabilir yapar. Derleme zamanında tür güvenliği sağlanır; yanlış tür atamak derleme hatası verir.

Box<T> örneği

Box<T> sınıfını somut bir türle kullanmak için tür argümanını açıkça yaz: var b = Box<int>(42);. Artık b.value bir int'tir.

Dart çoğu zaman türü kendisi çıkarır: var b = Box(42); yazarsan T'nin int olduğunu anlar. Ama açık yazım, kodun okunabilirliğini artırır. Farklı türler için aynı sınıfı tekrar tanımlamak gerekmez; tek Box<T> tanımı hem sayı hem metin hem özel türler için çalışır. Bu, generic sınıfların temel gücüdür.

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

Box<T> adında bir generic sınıf tanımla. İçinde T value alanı ve Box(this.value) yapıcısı olsun. main içinde var b = Box<int>(42); ile örnek oluştur ve print(b.value) çağrısı yap.

Başlangıç kodu

main.dart
// Box<T> sınıfını tanımla
// main içinde Box<int> örneği oluştur

void main() {
  // b.value yazdır
}

Örnek çözüm

main.dart
// Box<T> sınıfını tanımla
class Box<T> {
  T value;
  Box(this.value);
}

void main() {
  var b = Box<int>(42);
  print(b.value);
}

Beklenen çıktı

42

Soru ve cevaplar

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

1 Bir generic sınıf neden kullanılır?

  • Sınıfın bellekte kapladığı yeri küçültmek için
  • Tür güvenliği ve yeniden kullanımı bir arada sağlamak için Doğru cevap
  • Yapıcıları gizlemek için
  • Çalışma hızını artırmak için

Açıklama: Generic sınıf, tür güvenliğini bozmadan tek tanımı birçok türle kullanır.

2 Box bildirimine tür parametresi ekle

Soru
class Box____ {
  T value;
  Box(this.value);
}
Cevap
class Box<T> {
  T value;
  Box(this.value);
}

Açıklama: <T> tür parametresi Box sınıfını generic yapar.

3 Box<T> parçalarını eşle

Kavram Anlamı
Box Sınıf adı
T Tür parametresi
value Alan adı

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