C# dasturlash tilida sinflar ierarxiyasini tashkil etish
Download 1.16 Mb. Pdf ko'rish
|
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 turtburchak(int x, int y) : base(x) { b =y; } 65
public override double yuzi() { return a*b; } } {
static void Main(string[] args) { 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: |
ma'muriyatiga murojaat qiling