• Parametrlarni olish bilan ob’ektlarni yaratish
  • S sinfini turi bilan tanishish
  • Ob’ektlarni chiqarish va yaratish




    Download 6,33 Mb.
    Pdf ko'rish
    bet158/194
    Sana20.02.2024
    Hajmi6,33 Mb.
    #159185
    1   ...   154   155   156   157   158   159   160   161   ...   194
     
    Ob’ektlarni chiqarish va yaratish 
    Dasturni bajarish davomida dastlabki aniqlangan klasslardan ob’ektlarni yaratish yangi 
    operator orqali ijro etiladi. Ob’ektning kashf qilinishi qaytaddan bo‘lishi ob’ektning klassi bilan 
    turini muofiqlashtirishdan odatda o‘zgarishini aniqlaydi. Bu vazifada ob’ekt nusxalanmaganligini 
    eslatib o‘tmoqchimiz va endigina kashf qilingan ob’ektga faqat ishora o‘zgaruvchida yozilgan 
    bo‘ladi (uni adressi xotirada). Mana bu yerda uni qanday qilib ishlashi oddiy misolda
    ko‘rsatilgan:
    Cat someCat = 
    new
    Cat(); 


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    285 
    Cat turning someCat o‘zgaruvchilarini biz Cat klassining endigina yaratilgan namuna 
    sifatida belgilaganmiz. To‘planganda qolib ketgan someCat o‘zgaruvchilari va uning qiymati
    (Cat klassining namunasi ) boshqariligan to‘plamda qolib ketadi. 
    Parametrlarni olish bilan ob’ektlarni yaratish 
    Hozir yuqorida parametrsiz klass yaratishning misoli yendi parametrlar bilan klassni 
    yaratishning misolini ko‘ramiz 
    Cat someCat = 
    new
    Cat(
    "Johnny"

    "brown"
    ); 
    S# sinfini turi bilan tanishish 
    .NET platformasiga tegishli bo‘lsa, u xolda yanada fundamental dastur konstruksiyasi 
    sifatida sinf turi xisoblanadi. Formal sinf bu foydalanuvchi tomonidan aniqlanadigan tur. U 
    berilganlarni maydonidan va holatidan tashkil topgan. Berilganlar maydonining sinfini barchasi 
    birga sinf nusxalarini “Holatini” tasvirlaydi. Ob’ektga yo‘naltirilgan dasturlash tillari S# ga 
    o‘xshash berilganlarni guruxlash xususiyatidan tashkil topgan va shu bilan sinfni aniqlashdagi 
    funksionallik bilan bog‘liq, bu esa real xayot asosida dasturiy ta’minotni madellashtirish imkonini 
    beradi. 
    Boshlanishida yangi S# Console Application yaratamiz uni SimpleClassExample. Next 
    ataymiz. Keyin loyihaga yangi sinflar faylini (Project → Add Class) qo‘shamiz. Keyin 
    natijalanuvchi dialog oynasida Class belgisini tanlash zarur. Bu esa 5.1 rasmda ko‘rsatilgan va Add 
    qo‘shish tugmasiga bosamiz. 
    S# da sinfni aniqlash class yordamchi kalit so‘z yordamida amalga oshiriladi. Oddiy mavjud 
    sinflarni e’lon qilish keyingi ko‘rinishda bo‘ladi. 
    class
    Car


    Sinfni turini aniqlab bo‘lgach o‘zgaruvchan xadlar to‘plamini aniqlash lozim. Bu 
    aniqlanganlar uni xatoligini tasdiqlash uchun ishglatiladi. 
    Masalan siz Car ob’ektlari int turidagi berilganlar maydoniga ega bo‘lishi kerak deb 
    yechishingiz mumkin. Ular xozirgi tezlikni tasvirlaydi va string tipidagi berilganlar maydoni 
    do‘stona avtomobil ismini tasvirlash uchun ishlatiladi. Boshlang‘ich proektiv xolatini xisobga 
    olgan xolda Car sinfi keyingi ko‘rinishda bo‘ladi. 
    class
    Car

    // The 'state' of the Car. 
    public
    string
    petName; 
    public
    int
    currSpeed; 



    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    286 
    5.1 rasm. S# sinfiga yangi tipni qo‘shish. 
    Bu o‘zgaruvchan xadlar public mavjudlik modifikatorini ishlatish bilan e’lon qilingan. 
    Ochiq (public) sinfni xadlari mavjuddir. Sizlarga ma’lum bo‘lishi kerakki “ob’ekt” termini berilgan 
    sinf tipini nusxasini tasvirlash uchun xizmat qiladi, u new kalit so‘z yordamida yaratilgan. 
    O‘zgaruvchan xadlar to‘plamini aniqlagandan so‘ng, loyhalashtirishdagi keyingi qadam 
    sifatida xadlarini yaratish xisoblanadi, ular uning xolatini modellashtiradi. Bunga misol sifatida Car 
    sinfi SpeedUp() ismi bo‘yicha bitta usulni aniqlaydi va yana bittasi ismi bo‘yicha PrintState() sinf 
    kodini keyingi ko‘rinishda modifikatsiyalaydi
    class
    Car

    // The 'state' of the Car. 
    public
    string
    petName; 
    public
    int
    currSpeed; 
    // The functionality of the Car. 
    public
    void
    PrintState() 

    Console
    .WriteLine(
    "{0} is going {1} MPH."
    , petName, currSpeed); 

    public
    void
    SpeedUp(
    int
    delta) 

    currSpeed += delta; 


    PrintState() metodi bu qaysidir o‘rinda tashxisli funksiya, u oddiygina Car ob’ektini hozirgi 
    xolatini chiqaradi va u guruxli qatorga chiqadi. SpeedUp() metodi Carni tezligini oshiradi uni 
    kattalikka oshirgan xolda endi Main() metodidagi kodni yangilang u quyida ko‘rsatilgan: 
    static
    void
    Main(
    string
    [] args)
    {
    Console.WriteLine(
    "***** Fun with Class Types *****\n"
    );
    // Allocate and configure a Car object. 
    Car myCar = 
    new
    Car();
    myCar.petName = 
    "Henry"
    ;


    Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
    287 
    myCar.currSpeed = 10;
    // Speed up the car a few times and print out the 
    // new state. 
    for
    (
    int
    i = 0; i <= 10; i++)
    {
    myCar.SpeedUp(5);
    myCar.PrintState();
    }
    Console.ReadLine();
    }
    Dasturni ishga tushirib, siz ko‘rishingiz mumkin Car o‘zgaruvchi (myCar) o‘zining xozirgi 
    xolatini butun xayoti davomida ushlab qoladi, u keyingi xulosada ko‘rsatilgan. 
    ***** Fun with Class Types *****
    Henry 
    is
    going 15 MPH.
    Henry 
    is
    going 20 MPH.
    Henry 
    is
    going 25 MPH.
    Henry 
    is
    going 30 MPH.
    Henry 
    is
    going 35 MPH.
    Henry 
    is
    going 40 MPH.
    Henry 
    is
    going 45 MPH.
    Henry 
    is
    going 50 MPH.
    Henry 
    is
    going 55 MPH.
    Henry 
    is
    going 60 MPH.
    Henry 
    is
    going 65 MPH.

    Download 6,33 Mb.
    1   ...   154   155   156   157   158   159   160   161   ...   194




    Download 6,33 Mb.
    Pdf ko'rish