C# dasturlash tilida sinflar ierarxiyasini tashkil etish


Obyekt o’zgaruvchilari tiplarini keltirish(casting)



Download 1,16 Mb.
Pdf ko'rish
bet36/40
Sana02.01.2022
Hajmi1,16 Mb.
#312120
1   ...   32   33   34   35   36   37   38   39   40
Bog'liq
c dasturlash tilida sinflar ierarxiyasini tashkil etish

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 

 

                             2.3.  Abstrakt sinflar. Polimorfizm



 

                                           Abstrakt sinflar 

Ildiz sinf ko’pincha konkret ob’ektlar yasash uchun emas, balki boshqa sinf ostilar 

yasash asosi sifatida yasaladi. 

Ba’zi  metodlar  ildiz  sinfda  hali  aniq  algoritmga  ega  bo’lmaydi  agar  sinf  ostilar 

ularni  har  xil  aniqlashi  ko’zda  tutilgan  bo’lsa.Bunday  hollarda  bo’sh  metod 

yasaladi (zaglushka o’rniga) va u abstract deb e’lon qilinadi. Bunday sinf ob’ektini 

yasash munkin emas, u faqat sinf osti yasash uchun yasalgan. 

 abstract  metodlar  “abstract”  modifikatori  bilan  e’lon  qilinadi  va  ularning  tanasi 

mavjud bo’lmaydi.  Abstract  metodga ega sinf ham  “abstract”  modifikatoriga ega 

bo’lishi kerak. 

Abstract sinf abstract bo’lmagan metodlarga ham ega bolishi mumkin 

Sinflar ierarxiyasidan yuqoriga ko’tarilib borgan sari sinf abstraktliligi oshib boradi 

Himoyalangan ruxsat 

Modifikator protected (maydon va metod uchun) 

Sinf  ostilar  va  shu  sinf  ostilar  turgan  paketlardagi  sinflar  uchun  ruxsat 

beriladi 

Asosan  metodlar  uchun,  maydonlarga  ham  qo’yish  mumkin,  lekin  tavsiya 

etilmaydi. 

Protected modifikatori C++ dagi protected modifikatoridan farq qiladi. C++ 

da faqat sinf ostilargagina ruxsat beriladi 

    Ruxsat turlari 

private – ko’rinish sohasi faqat shu sinf 

public - ko’rinish sohasi chegaralanmagan 

protected - ko’rinish sohasi paket va sinf ostilar 

ko’rsatilmagan - ko’rinish sohasi joriy paket 


Download 1,16 Mb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   40




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