C# dasturlash tilida sinflar ierarxiyasini tashkil etish


Download 1.16 Mb.
Pdf ko'rish
bet33/35
Sana05.01.2022
Hajmi1.16 Mb.
#213141
1   ...   27   28   29   30   31   32   33   34   35
Bog'liq
c dasturlash tilida sinflar ierarxiyasini tashkil etish

Equals metodi 

equals:  agar  ikki  ko’rsatkich  ayni  bir  xotirani  egallab  turgan  bo’lsa  true  natija 

qaytaradi. 

A.equals(B); 

Bu yerda A va B ko’rsatkich tipga tegi 

  C# spetsifikatsiyasidagi equals: 

1. Refleksivlik. Ixtiyoriy null bo’lmagan х ko’rsatkich uchun x. equals(x) chaqiruv 

true natija beradi 

2.  Simmetriklik.Ixtiyoriy  х  va  у  ko’rsatkichlar  uchun  х.equals(у)  chaqiruv  true 

natija  beradi  faqat  va  faqat  shu  holdaki  qachon  у.equals(x)  chaqiruv  true  natija 

bersa. 

3.  Tranzitivlik.  Ixtiyoriy  х  va  у  ko’rsatkichlar  uchun  х.equals(у)  va  у.equals(z) 

chaqiruv true natija bersa х.equals(z) chaqiruv ham true natija beradi. 

4.  Qaramaqarshiliksizlik.  Agar  x  va  y  ro’rsatkichlar  ko’rsatadigar  ob’ektlar 

o’garmasa qayta х.equals(у) chaqiruv natijasi oldingi chaqiruv natijasi bilan bir xil 

bo’ladi. 

5. Ixtiyoriy null bo’lmagan ko’rsatkich х uchun х.equals(null) chaqiruv false natija 

beradi.[6] 

Sinf osti uchun oldin supersinf equals metodi chaqiriladi va agar u true natija bersa 

keyin maydonlar tekshiriladi 

                                                    toString metodi 

toString: ob’ekt qiymatini satr ifatida qaytaradi. Bu metod qariyb hamma sinflarda 

qayta  aniqlanadi  va  ob’ektning  joriy  qiymatini  pechatga  chiqarish  uchun 

mo’ljallangan.  




64 

 

Nuqta sinfining toString metodi quyidagi satrni chiqaradi: "nuqtaning koordinatasi: 



("+x+", "+y+")" 

Ko’pincha  sinflar  toString  metodi  ni  shunday  realizatsiya  qiladilarki,  unda  sinf 

nomi va maydonlarning qiymatlari kvadrat qavs ichida chiqariladi 

Object  sinfida  bu  metod  sinf  nomini  va  undan  keyin  uning  xotiradagi  adresini 

chiqaradi 

Console


.WriteLine (System.out); 

Quyidagi satrni chiqaradi: C#.io.PrintStream@2f668 4 

Bu metod dasturni sozlashda ishlatilishi ham mumkin. 

Abstrakt sinfga doir misol: 

using System; 

using System.Text; 

namespace sinflar 

  public abstract class figura { 



  public int a; 

  public figura(int x) { a = x; } 

  abstract public double yuzi(); 

   // public virtual double perimetr() { } 

        } 

       public class aylana : figura { 

       public aylana(int x) : base(x) { } 

       public override double yuzi() 

           { return a * a*Math.Pi; } 

        } 

       public class turtburchak : figura 

       { 

       public int b

       public turtburchak(int x, int y) : base(x) { b =y; } 




65 

 

       public override double yuzi() 



           {  return a*b; } 

       } 

        class Program 

    { 


        static void Main(string[] args) 

        { 

            figura F

            aylana A = new aylana(5); 

            turtburchak T = new turtburchak(3,4); 

            F = T; 

            Console.Write("Figura yuzasi =" + F.yuzi()); 

            Console.ReadKey(); 

        } 

    } 





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 ©fayllar.org 2024
ma'muriyatiga murojaat qiling