• Ona sinf hosil qilish
  • Voris sinf hosil qilish
  • Odam klassining ichida
  • __init__() funksiyasini qo‘shish
  • 12-Maruza: Sinflarni modullarda aniqlash va ularni bog‘lash Sinflarda Vorislik tushunchasi




    Download 239 Kb.
    Sana14.05.2024
    Hajmi239 Kb.
    #232199
    Bog'liq
    12-maruza A va D


    12-Maruza: Sinflarni modullarda aniqlash va ularni bog‘lash


    Sinflarda Vorislik tushunchasi
    Vorislik - bu atama sinflarga xosdir. Vorislik deb bir sinfdagi barcha funksiya va xususiyatlarni boshqa bir sinf o‘ziga o‘zlashtirishiga aytiladi. Funksiyalari meros qilib olinadigan sinf ona sinf deyiladi. Meros qilib olingan funksiyalarni o‘ziga o‘zlashtiradigan sinf voris sinf deyiladi.
    Ona sinf hosil qilish
    Istalgan sinf ona sinf bo‘lishi mumkin. Shu sababli ona sinfni hosil qilish xuddi oddiy sinfni hosil qilish kabidir. Hozir odam degan sinf hosil qilamiz. Unda ism va familiya parametrlari va tanish degan funksiyasi bo‘ladi. So‘ngra shu sinf orqali x obyekt hosil qilamiz



    Bu kod Python tilida "Odam" nomli klassni yaratadi. Bu klassning vazifasi insonlarni ifodalashdir.


    def __init__(self, ism, familiya): qismida __init__ metod yaratiladi. Bu metod obyekt yaratilganda avtomatik ravishda chaqiriladi. Bu metod orqali obyektga xususiyatlar (ism va familiya) yuklanadi.


    self.ism = ism va self.familiya = familiya qatorlarida obyektning ismi va familiyasi xususiyatlarini yuklash uchun self kalit so‘zi va ma'lumotlar berilgan.


    def tanish(self): qismida tanish metodi yaratiladi. Bu metod obyektning ismini va familiyasini ekranga chiqaradi.


    x = Odam("Alisher", "Baxromov") qismida Odam klassidan x nomli yangi obyekt yaratiladi. Uning ismi "Alisher" va familiyasi "Baxromov" bo‘ladi.


    x.tanish() qatorida esa tanish metodi chaqiriladi va "Alisher Baxromov" ekranga chiqariladi.





    Voris sinf hosil qilish

    Voris sinf hosil qilish uchun yangi sinf tuzilayotganda ona sinfni paramet sifatida kiritamiz. Shunda voris sinf ona sinfdan barcha xususiyatlarni o‘zlashtiradi. Hozir Talaba degan sinf hosil qilamiz. Odam sinfi uning onam sinfi bo‘ladi. Qavslar ichida ona sinfni kirittamiz va uning barcha xususiyatlarini voris sinf o‘zlashtiradi. Qo‘shimcha parametr qo‘shish shart emas, ammo sinf hosil qilayotganda ichi bo‘sh bo‘lishi ham mumkin emas. Agar hechnarsa yozishni istamasak xatolik yuz bermasligi uchun pass kalit so‘zini qo‘shib qo‘yamiz:







    Odam klassining ichida:
    - __init__ metodi yangi obyektlar yaratilganda avtomatik chaqiriladi. U obyektga ism va familiyani yuklaydi.
    - tanish metodi obyektning ism va familiyasini ekranga chiqaradi.
    Talaba klassi esa "Odam" klassidan meros olgan. U "Odam" klassining barcha xususiyatlarini va metodlarini o‘z ichiga oladi.
    x = Talaba("Asadbek", "Suvonov") qatorda "Talaba" klassidan yangi obyekt yaratiladi, "Asadbek" ismi va "Suvonov" familiyasi bilan.
    x.tanish() qatorda esa tanish metodi chaqiriladi. Bu metod "Odam" klassining bir xususiyati bo‘lib, "Asadbek Suvonov" ekranga chiqariladi.
    Kod quyidagi vazifalarni bajaradi:

    1. Odam klassi inson obyektlarini ifodalaydi.


    2. Talaba klassi Odam klassidan meros oladi.
    3. Talaba klassi tanish metodini mo‘ljallangan obyektiga qo‘shadi

    __init__() funksiyasini qo‘shish

    Avvalgi misolimizda voris sinf hosil qilganimizda pass kalit so‘zi bilan cheklanib qo‘ya qoldik. Shu sababli voris sinf barcha funksiyalarni avtomatik tarzda o‘zlashtirgan edi. Endi voris sinfga __init__() funksiyasi bilan parametrlarini joylashtiramiz. Bunda voris sinf ona sinfdagi __init__() funksiyasidan emas o‘zidagidan foydalanadi.







    super() funksiyasi
    Sinflar bilan ishlash uchun maxsus super() funksiyasi ham mavjud. Bu funksiya ona sinfdagi barcha funksiya va parametrlarni voris sinfga o‘zlashtiradi:

    Parametr qo‘shish

    Voris sinf hosil qilingach unga yana qo‘shimcha parameter qo‘shmoqchi bo‘lsak quyidagicha amalga oshirish mumkin. Hozir yil parametrini qo‘shamiz:



    Download 239 Kb.




    Download 239 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    12-Maruza: Sinflarni modullarda aniqlash va ularni bog‘lash Sinflarda Vorislik tushunchasi

    Download 239 Kb.