Middle
Generics nedir ve programlamada nasıl kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Genel (generics), farklı veri türleriyle çalışabilen ve derleme zamanında tür güvenliğini koruyan kod yazma imkanıdır. Sınıflar, arayüzler ve metodlar oluşturmayı sağlarlar ve burada veri tipi, kullanıldıkları zaman belirlenir, tanımlandıkları zaman değil.
Generics kullanımı şunları sağlar:
- Tür güvenliği: Derleyici, tür uyumluluğunu kontrol eder, bu da çalışma zamanında tür uyuşmazlığı hatalarını önlemeye yardımcı olur.
- Kod tekrar kullanımı: Aynı kod, farklı veri türleriyle çalışmak için kullanılabilir, böylece mantık tekrarlanmaz.
- Kod okunabilirliği: Belirli türlerin kullanılması,
Objectyerine, kodun anlaşılmasını artırır. - Performans: Bazı dillerde (örneğin Java), generics tür silme (type erasure) ile uygulanırken, diğerlerinde (örneğin C#, C++) tür bilgisi çalışma zamanında korunur.
Kullanım örnekleri:
- Koleksiyonlar: Herhangi bir türdeki öğeleri tutabilen genel listeler, kümeler ve haritalar oluşturma.
// String listesi oluşturma List<String> stringList = new ArrayList<>(); stringList.add("merhaba"); // Sayı eklemeye çalışırken derleme hatası // stringList.add(123); - Fabrikalar: Farklı türlerde nesneler üretebilen fabrikalar oluşturma.
- Metodlar: Genel veri türleriyle çalışan metodlar yazma.
// Değişkenleri takas eden genel metod public static void Swap<T>(ref T a, ref T b) { T temp = a; a = b; b = temp; } - Sınıflar: Saklanan veya işlenen veri türüne göre genel sınıflar oluşturma.
// Genel kutu sınıfı class Box<T> { private T content; public void setContent(T content) { this.content = content; } public T getContent() { return content; } }
Object tipi kullanımıyla karşılaştırma (Java'da):
| Özellik | Generics | Object tipi |
|---|---|---|
| Tür güvenliği | Derleme zamanında | Çalışma zamanında (tip dönüşümleriyle) |
| Dönüşüm gerekliliği | Yok | Evet |
| Hatalar | Derleme aşamasında tespit edilir | Çalışma zamanında ortaya çıkabilir (ClassCastException) |
| Okunabilirlik | Yüksek | Daha düşük (hangi türlerin beklendiği belli değil) |
Genel olarak, generics daha güvenilir, okunabilir ve tekrar kullanılabilir kod yazmaya olanak tanıyan güçlü bir araçtır.