Mustaqil ish Mavzu: Java Generics


Download 312.82 Kb.
bet2/5
Sana06.04.2023
Hajmi312.82 Kb.
#1335115
1   2   3   4   5
Bog'liq
Mustaqil ish1 TDA

Nima uchun generiklar?

Ob'ekt boshqa barcha sinflarning yuqori sinfidir va Ob'ektga havola har qanday ob'ektga murojaat qilishi mumkin. Bu xususiyatlar turdagi xavfsizlikka ega emas. Generallar ushbu turdagi xavfsizlik xususiyatini qo'shadilar. Ushbu turdagi xavfsizlik xususiyatini keyingi misollarda muhokama qilamiz.

Java tilidagi generiklar C++ dagi shablonlarga o'xshaydi. Masalan, HashSet, ArrayList, HashMap va boshqalar kabi sinflar generiklardan juda yaxshi foydalanadi. Umumiy turlarga ikkita yondashuv o'rtasida ba'zi bir tub farqlar mavjud. 

Generiklarning afzalliklari: 

Generics ishlatadigan dasturlar umumiy bo'lmagan kodga nisbatan ko'p afzalliklarga ega. 

1. Kodni qayta ishlatish: Biz metod/sinf/interfeysni bir marta yozishimiz va undan istalgan tur uchun foydalanishimiz mumkin.

2. Xavfsizlik turi: generiklar ish vaqtidagidan ko'ra kompilyatsiya vaqti ko'rinishida xatoliklarga yo'l qo'yadi (kodni ishga tushirish vaqtida muvaffaqiyatsizlikka uchratgandan ko'ra, kompilyatsiya vaqtida kodingizdagi muammolarni bilish har doim yaxshidir). Faraz qilaylik, siz talabalar nomini saqlaydigan ArrayList yaratmoqchisiz va agar dasturchi xatolik tufayli satr oʻrniga butun son obyektini qoʻshsa, kompilyator bunga ruxsat beradi. Ammo, biz ushbu ma'lumotlarni ArrayList'dan olganimizda, bu ish vaqtida muammolarni keltirib chiqaradi.

3. Individual Type Casting kerak emas: Agar biz generiklardan foydalanmasak, yuqoridagi misolda biz har safar ArrayList dan ma'lumotlarni olganimizda, uni matn terishimiz kerak bo'ladi. Har bir qidirish operatsiyasida matn terish katta bosh og'rig'idir. Agar biz ro'yxatimizda faqat string ma'lumotlar borligini allaqachon bilsak, uni har safar chop etishimiz shart emas.

4. Generics kodni qayta ishlatishga yordam beradi: Java-dagi generiklar yordamida biz har xil turdagi ma'lumotlar bilan ishlaydigan kod yozishimiz mumkin. Masalan,


Download 312.82 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling