Sobes.tech
Middle

Genel Tipler (Generics) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Genel Tipler (Generics), türlerin parametrize edilmesini sağlayan bir araçtır ve evrensel sınıflar, arayüzler ve metodlar oluşturmayı mümkün kılar. Farklı veri tipleriyle çalışmaya olanak tanır ve derleme sırasında tip güvenliğini kaybetmeden çalışmayı sağlar.

Generics kullanımının temel avantajları:

  • Tip Güvenliği: Derleme aşamasında derleyici, tip uyumluluğunu kontrol eder ve potansiyel hataları program çalışmadan önce tespit etmeye yardımcı olur.
  • Kod Tekrarını Azaltma: Farklı tiplerle çalışan tek bir sınıf veya metod oluşturabilirsiniz, böylece her tip için ayrı kod yazmaya gerek kalmaz.
  • Daha Anlaşılır Kod: Genel tiplerin kullanımı, kodun hangi veri tipleriyle çalıştığını göstererek kodun okunabilirliğini artırır.
  • Açık tip dönüştürmeye gerek olmaması (casting): Generics ile çalışırken, elemanları ihtiyaç duyulan tipe açıkça dönüştürmeye gerek kalmaz.

Java'da kullanım örneği:

// Sadece stringleri tutabilen liste oluşturma
List<String> stringList = new ArrayList<>();
stringList.add("merhaba");
// stringList.add(123); // Derleme hatası, çünkü 123 bir string değil

// Tip dönüşümüne gerek kalmadan eleman alma
String ilkEleman = stringList.get(0);

C#'ta kullanım örneği:

// Sadece tam sayıları tutabilen liste oluşturma
List<int> intList = new List<int>();
intList.Add(10);
// intList.Add("dünya"); // Derleme hatası, çünkü "dünya" bir tam sayı değil

// Tip dönüşümüne gerek kalmadan eleman alma
int sayi = intList[0];

Genel bir sınıf örneği:

// Herhangi bir tipte nesne tutabilen genel sınıf Box
public class Box<T> {
    private T item;

    public void setItem(T item) {
        this.item = item;
    }

    public T getItem() {
        return item;
    }
}

// Genel sınıfın kullanımı
Box<Integer> intBox = new Box<>();
intBox.setItem(123);
int intDegeri = intBox.getItem(); // Dönüşüme gerek yok

Box<String> stringBox = new Box<>();
stringBox.setItem("test");
String stringDegeri = stringBox.getItem(); // Dönüşüme gerek yok

Bu şekilde, genel tipler, esnek, güvenli ve bakımı kolay kodlar yazmak için güçlü bir araçtır.