Generic sınıf
- Dart kursu
- Orta seviye
- Ders 30/116
- 5 dk
<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
// 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
// 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
class Box____ {
T value;
Box(this.value);
}
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ı |