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


  Sinf osti va sinf usti munosabatlari



Download 1,16 Mb.
Pdf ko'rish
bet30/35
Sana20.06.2021
Hajmi1,16 Mb.
#71671
1   ...   27   28   29   30   31   32   33   34   35
Bog'liq
c dasturlash tilida sinflar ierarxiyasini tashkil etish

                             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(); 

        } 

    } 



                                        Sinf osti 



[] class  :  { 

  

Supersinf barcha maydonlari va metodlari meros qilib sinf ostiga beriladi. Sinf osti 

qo’shimcha  maydon  va  metodlar  yasashi  va  meros  qilib  olingan  metodni  qayta 

aniqlashi mumkin. 

Agar  sinf  osti  metodi  qayta  aniqlangan  supersinf  metodi  bo’lsa,  supersinfning 

metodiga “super” old qo’shimcha orqali murojaat qilinadi 

Supersinf konstruktoriga super(…) ko’rinishida murojaat qilinadi 

Agar  sinf  osti  konstruktoridan  supersinf  konstruktoriga  murojaat  qilinmasa 

supersinfning  parametirsiz  konstruktori  chaqiriladi.  Agar  parametrsiz  konstruktor 

aniqlanmagan bo’lsa kompilyator xato haqida xabar beradi 

(odam, ishchi,talaba misolida) 




62 

 


Download 1,16 Mb.

Do'stlaringiz bilan baham:
1   ...   27   28   29   30   31   32   33   34   35




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish