Sobes.tech
Middle

Generiklar nima?

sobes.tech AI

AIdan javob

Generyk turlar — bu turlar parametrizatsiya qilish vositasi bo‘lib, u universal sinflar, interfeyslar va metodlarni yaratishga imkon beradi. Ular turli ma'lumot turlari bilan ishlashga imkon beradi va kompilyatsiya vaqtida tur xavfsizligini yo'qotmaydi.

Genericsdan foydalanishning asosiy afzalliklari:

  • Tur xavfsizligi: Kompilyator tur mosligini tekshiradi va potentsial xatoliklarni dastur ishga tushirilishidan oldin aniqlashga yordam beradi.
  • Kod takrorlanishini kamaytirish: Bir sinf yoki metodni yaratish mumkin, u turli turlarda ishlaydi, har bir tur uchun alohida kod yozishga hojat qolmaydi.
  • Kodning o‘qilishi yaxshilanadi: Umumiy turlarni ishlatish kodni tushunarliroq qiladi, u qanday ma'lumot turlari bilan ishlashini ko‘rsatadi.
  • Aniq turga o‘tkazish (casting) ehtiyojini yo‘q qilish: Generics bilan ishlashda, elementlarni kerakli turga aniq o‘tkazishga hojat qolmaydi.

Java'da foydalanish misoli:

// Faqat satrlarni saqlay oladigan ro‘yxat yaratish
List<String> stringList = new ArrayList<>();
stringList.add("salom");
// stringList.add(123); // Kompilyatsiya xatosi, chunki 123 satr emas

// Tipni o‘zgartirmasdan elementni olish
String birinchiElement = stringList.get(0);

C#'da foydalanish misoli:

// Faqat butun sonlarni saqlay oladigan ro‘yxat yaratish
List<int> intList = new List<int>();
intList.Add(10);
// intList.Add("dunyo"); // Kompilyatsiya xatosi, chunki "dunyo" butun son emas

// Tipni o‘zgartirmasdan elementni olish
int raqam = intList[0];

Umumiy sinf misoli:

// Har qanday turdagi ob'ektni saqlay oladigan umumiy Box sinfi
public class Box<T> {
    private T item;

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

    public T getItem() {
        return item;
    }
}

// Umumiy sinfdan foydalanish
Box<Integer> intBox = new Box<>();
intBox.setItem(123);
int intValue = intBox.getItem(); // Ruknatsiz

Box<String> stringBox = new Box<>();
stringBox.setItem("test");
String stringValue = stringBox.getItem(); // Ruknatsiz

Shunday qilib, generik turlar moslashuvchan, xavfsiz va oson texnik xizmat ko‘rsatadigan kod yaratish uchun kuchli vositadir.