vorislik

PPTX 25 sahifa 133,0 KB Bepul yuklash

Sahifa ko'rinishi (5 sahifa)

Pastga aylantiring 👇
1 / 25
теория вероятностей и математическая статистика vorislik vorislik (inheritance) obyektga yonaltirilgan dasturlash(oyd)ning muhim tamoyillaridan biridir. voris orqali bir sinf boshqa sinfning funksionalligini o’zlashtirishi mumkin, ya’ni voris sinflar umumiy xususiyatlarni vorislik bilan olgan holda, ayrim xususiyatlarni qayta aniqlash orqali yoki yangi xususiyat kiritish orqali tayanch sinfga o’gartirish mumkin. shu sababli hosilaviy sinflarni aniqlash sezilarli ravishda kamayadi, chunki unga tayanch sinfdan farqli elementlar qo’shiladi. aytaylik, bizda alohida shaxsni tavsiflovchi quyidagi person sinfi mavjud: 1 vorislik class person { private string _name; public string name { get { return _name; } set { _name = value; } } public void display() { console.writeline(name); } } 2 vorislik ammo korxona ishchisini tavsiflovchi sinf kerak bo’lib qoldi deylik - bu employee sinfi. ushbu sinf person sinfi bilan bir xil funktsiyani amalga oshirishi sababli, xodim ham o'z navbatida shaxs bo'lganligi sababli, employee sinfini person sinfining vorisi (yoki sinf osti) ga aylantirish mantiqan to'g'ri bo'ladi. bu sinf o’z …
2 / 25
new employee(). 5 vorislik kelishuv bo’yicha, vorislik oshkor ravishda ko’rsatilmasa ham, barcha sinflar object tayanch sinfining vorisi hisoblanadi. shuning uchun ham, yuqorida keltirilgan person hamda employee sinflari o'zlarining metodlaridan tashqari, ob'ekt sinfining quyidagi metodlariga ham ega: tostring(), equals(), gethashcode() va gettype(). kelishuv bo'yicha barcha sinflar voris qilib olinishi mumkin. biroq, bu yerda bir qator cheklovlar mavjud: 6 vorislik to’plamli vorislik qo'llanilmaydi, sinf faqat bitta sinfdan voris olishi mumkin. hosilaviy sinfni yaratishda tayanch sinfning kirish kaliti ham hisobga olinilishi zarur, yani hosilaviy sinfning kirish kaliti tayanch sinfniki bilan bir xil bo’lishi yoki undanda cheklovliroq bo'lishi talab etiladi. ya'ni, agar tayanch sinf internal kirish kalitiga ega bo'lsa, hosilaviy sinf (voris sinf) ham internal yoki private kirish kalitiga ega bo’lishi mumkin, lekin public kirish kalitiga ega bo’lishi bo’la olmaydi. shuni hisobga olish kerakki, agar tayanch va hosilaviy sinflar har xil loyihalarda bo'lsa, unda hosilaviy sinf faqat public modifikatorga ega bo'lgan sinfdan voris olinishi …
3 / 25
e nomli umumiy xossa mavjud, shuning uchun quyidagi kod to’g’ri ishlaydi: class employee : person { public void display() { console.writeline(name); } } 10 hosilaviy sinfdan tayanch sinf a'zolariga kirish shunday qilib, hosilaviy sinfdan tayanch sinfning faqat private protected modifikatorlari bilan belgilangan a'zolariga kira oladi (agar tayanch va hosilaviy sinflar bir xil dasturlar jamlanmasida bo'lsa), public, internal (agar tayanch va hosilaviy sinflar bir xil dasturlar jamlanmasida bo'lsa). shuningdek, hosilaviy sinfdan tayanch sinfning protected и protected internal modifikatorlari bilan belgilangan a'zolariga kira oladi. 11 base kalit so’zi endi sinflarimizga konstruktorlarni qo'shaylik: class person { public string name { get; set; } public person(string name) { name = name; } public void display() { console.writeline(name); } } 12 base kalit so’zi class employee : person { public string company { get; set; } public employee(string name, string company) : base(name) { company = company; } } person sinfi name xususiyatini o'rnatadigan konstruktorga …
4 / 25
a agar tayanch sinfda kelishuv bo'yicha parametrsiz konstruktor aniqlanmagan, faqat parametrlarga ega bo'lgan konstruktorlar aniqlangan (person bazaviy sinfda bo'lgani kabi) bo’lsa, u holda hosilaviy sinfda biz ushbu konstruktorlardan birini base kalit so'z yordamida chaqirishimiz kerak. masalan, employee sinfidan konstruktorni olib tashlimiz: class employee : person { public string company { get; set; } } 15 hosilaviy sinflarda konstruktorlar bu holda xatolik yuz beradi, chunki "employee" sinfi "person" sinfiga to'g'ri kelmaydi, ya'ni u tayanch sinfning konstruktorini chaqirmaydi. agar bir xil xususiyatlarni o'rnatadigan biron bir konstruktorni qo'shsak ham, xatolik yuz beradi: public employee(string name, string company) { name = name; company = company; } 16 hosilaviy sinflarda konstruktorlar ya'ni, employee sinfida base kalit so'z orqali person sinfining konstruktori oshkor ravishda chaqirilishi kerak: public employee(string name, string company) : base(name) { company = company; } yoki, muqobil variant sifatida tayanch sinfda parametrsiz konstruktor aniqlash kerak bo’ladi: 17 hosilaviy sinflarda konstruktorlar class person { …
5 / 25
ch sinflarning konstruktorlari, shundan keyingina hosilaviy sinf konstruktorlari qayta ishlanadi. masalan, quyidagi sinflarni ko’rib chiqamiz: class person { string name; int age; public person(string name) { this.name = name; console.writeline("person(string name)"); } 21 konstruktorlarni chaqirish tartibi public person(string name, int age) : this(name) { this.age = age; console.writeline("person(string name, int age)"); } } class employee : person { string company; public employee(string name, int age, string company) : base(name, age) { this.company = company; console.writeline("employee(string name, int age, string company)"); } } 22 konstruktorlarni chaqirish tartibi employee sinfining ob'ektini yaratishda: employee tom = new employee("tom", 22, "microsoft"); konsolda quyidagiga ega bo’lamiz: person(string name) person(string name, int age) employee(string name, int age, string company) natijada quyidagi bajarilish zanjiriga ega bo’lamiz. 23 konstruktorlarni chaqirish tartibi 1. dastlab employee(string name, int age, string company) konstruktori chaqiriladi. u esa boshqaruvni person(string name, int age) konstruktorga uzatadi. 2. person(string name, int age) konstruktor chaqiriladi, o'zi …

Ko'proq o'qimoqchimisiz?

Barcha 25 sahifani Telegram orqali bepul yuklab oling.

To'liq faylni yuklab olish

"vorislik" haqida

теория вероятностей и математическая статистика vorislik vorislik (inheritance) obyektga yonaltirilgan dasturlash(oyd)ning muhim tamoyillaridan biridir. voris orqali bir sinf boshqa sinfning funksionalligini o’zlashtirishi mumkin, ya’ni voris sinflar umumiy xususiyatlarni vorislik bilan olgan holda, ayrim xususiyatlarni qayta aniqlash orqali yoki yangi xususiyat kiritish orqali tayanch sinfga o’gartirish mumkin. shu sababli hosilaviy sinflarni aniqlash sezilarli ravishda kamayadi, chunki unga tayanch sinfdan farqli elementlar qo’shiladi. aytaylik, bizda alohida shaxsni tavsiflovchi quyidagi person sinfi mavjud: 1 vorislik class person { private string _name; public string name { get { return _name; } set { _name = value; } } public void display() { console.writeline(name); } } 2 vorislik a...

Bu fayl PPTX formatida 25 sahifadan iborat (133,0 KB). "vorislik"ni yuklab olish uchun chap tomondagi Telegram tugmasini bosing.

Teglar: vorislik PPTX 25 sahifa Bepul yuklash Telegram