• 2.2. Sinf osti va sinf usti munosabatlari Super sinf va sinf osti
  • Obyekt o’zgaruvchilari tiplarini keltirish(casting)
  • O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti




    Download 221 Kb.
    bet22/25
    Sana29.01.2024
    Hajmi221 Kb.
    #147850
    1   ...   17   18   19   20   21   22   23   24   25
    Bog'liq
    O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi b

    DINAMIK METODLARNI BELGILASH 
    Kelinglar misol sifatida ikki sinfni ko’rib chiqamiz. Ular oddiy sinfosti va 
    supersinfga ega. Supersinfning yagona metodi sinfostiga aralashgan.
    class A { void callme() {

    Console.Write ("Inside A's callrne method");


    class В extends A { void callme() {
    Console.Write ("Inside B's callme method");
    } }

    class Dispatch {


    public static void main(String args[]) {


    59
    A a = new B();


    a.callme();


    } }

    E’tibor bering – main metodi ichida biz parametrli sinf e’lon qildik,buni biz sinf


    oby’ektiga jo’natma bilan inisiallashtiramiz.Keyingi satrda biz callme metodini 
    chaqirdik.
    Natija:

    Inside B's calime method



    2.2. Sinf osti va sinf usti munosabatlari 

    Super sinf va sinf osti 
    Sinf osti tipidagi ob’ektga ko’rsatkichni supersinf tipidagi o’zgaruvchiga qiymat 
    qilib uzatish mumkin, lekin teskarisi o’rinli emas. Ya’ni har qanday ishchi
    menedjer bo’la olmaydi 
    Kengaytirilishi mumkin bo’lmagan sinf “terminal” sinf deb ataladi. Buning uchun
    sinfga “final” modifikatori qo’yiladi. 
    Alohida olingan metod ham “final” bo’lishi mumkin. bunday metod sinf ostida
    qayta aniqlanishi mumkin emas.
    Agar sinf “final” bo’lsa uning maydonlari final bo’lishi shart emas. Buning uchun
    har bir maydon “final” bo’lishi lozim. 
    Terminal sinf xusuiyatlari:
    effektivlik (“Inline”) metodlar uchun statik bog’lanish ishlaydi, ya’ni metod 
    chaqirilganda uning kodi qanday bo’lishini kompilyator biladi
    xavfsizlik.
    Agar supersinf tipidagi o’zgaruvchi sinf osti ob’ektiga ko’rsatsa bu ko’rsatkichni
    sinf osti sinfi ob’ektiga ko’rsatkich qilib o’zgartirish (keltirish) mumkin.
    Obyekt o’zgaruvchilari tiplarini keltirish(casting) 
    Keltirish faqat sinf ierarxiyasi ichida (tepadan pastga qarab) bajarilishi mumkin 
    Agar o’zgaruvchi sinf osti ob’ektiga ko’rsatmasa uni sinf ostiga keltirish mumkin
    emas (favqulotda hodisa ro’y beradi) 


    60
    Keltirish quyidagicha amalga oshiriladi


    if (B instanceof A) {


    A boss = (A) B;} 
    Ob’ekt o’zgaruvchilari ustida keltirish operatsiyasini iloji bo’lsa ishlatmaslik
    kerak. Ob’ektlilik buziladi 
    Uchburchak sinfiga misol:
    using

    System;
    using

    System.Text;
    namespace
    sinf1
    {

    public
    class

    uchburchak
    {

    int
    a;


    int


    b;
    int
    c;

    public


    uchburchak(
    int

    x,
    int

    y,
    int

    z)
    { a = x; b = y; c = z; } 

    public
    int

    perimetr() {


    return

    a + b + c; }

    public
    int

    getA() {


    return

    a; }


    public
    int

    getB() {


    return

    b; }


    public
    void

    setA(
    int

    x) { a = x; }
    }

    public

    class

    tuchburchak


    :
    uchburchak

    {

    //public tuchburchak(int x, int y, int z)


    { a = x; b = y; c = z; }

    public
    tuchburchak(


    int
    x,

    int
    y,

    int
    z):

    base
    (x,y,z) {} 


    public

    double


    yuza() {
    return

    getA()*getB()/2.0; }


    }

    class

    Program


    61

    static

    void


    Main(
    string

    [] args)



    uchburchak
    U =
    new

    uchburchak


    (3, 4,5);
    tuchburchak
    T=

    new
    tuchburchak


    (3,4,5);


    int
    x = U.perimetr(); 

    Console


    .WriteLine(x);

    //Console.WriteLine(U.getA());


    // U.setA(7);


    //Console.WriteLine(U.getA());


    Console
    .WriteLine(T.yuza()); 


    Console

    .ReadKey();



    }
    }


    Download 221 Kb.
    1   ...   17   18   19   20   21   22   23   24   25




    Download 221 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti

    Download 221 Kb.