СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Vorislik mavzusi C# dasturi bo`yicha kursi ishi

Категория: Информатика

Нажмите, чтобы узнать подробности

Vorislik mavzusi C# dasturi bo`yicha kursi ishi.

Просмотр содержимого документа
«Vorislik mavzusi C# dasturi bo`yicha kursi ishi»


Mundarija


I. KIRISH……...……………………………………………………………………3

II.BOB Vorislik……..……………...………………………………………….……9

2.1 Vorislik haqida tushuncha………………………………………………....……9

2.2 Konstruktorlar va vorislik…………………………………………………..…15

2.3 Muxrlangan sinfni sinfga qo’shish…………………………………………….18

2.4 Ichki sinflar. Poliforizm…………………………………………………..……21

2.5 Vorislikda murojaat huquqlari……………...……………………………...…..27

III. XULOSA…...……………………………...………………………………...33

VI. Foydalangan adabiyotlar…………………...……………………...………..34

KIRISH

“Jismoniy va maʼnaviy yetuk yoshlar – ezgu

maqsadlarimizga yetishda tayanchimiz va suyanchimizdir”

Sh.Mirziyoyev



Milliy istiqlol mafkurasining bosh gʼoyasi – ozod va obod vatan, erkin va farovon xayot barpo etishdir. Oʼzbekiston Respublikasi inson xuquqlari va erkinliklariga rioya etilishiga, jamiyatning maʼnaviy yangilanishi jaxon hamjamiyatiga qoʼshilishini taʼminlaydigan, bozor iqtisodiyotiga asoslangan demokratik huquqiy davlat va ochiq fuqarolik jamiyati barpo etmoqda. Inson, uning xar tomonlama kamol topishi va farovonligi, shaxs manfaatlarining roʼyobga chiqarishning sharoitlari va taʼsirchan mexanizmlari ustida ishlash, eskirgan tafakkur va ijtimoiy xulq-atvorning andozalarini oʼzgartirish zarur.

Ushbu omil Respublikada amalga oshirilayotgan islohotlarning asosiy maqsadi va harakatlanuvchi kuchi xisoblanadi. Shu bois Oʼzbekiston Respublikasi Birinchi Prizidenti Islom Аbdugʼanievich Karimov 1997 yil 29 avgustida Oʼzbekiston Respublikasi Oliy Majlisi IX sessiyasidagi “Barkamol avlod Oʼzbekiston taraqqiyotining poydevori” nomli maʼruzasida oʼquv yurtlarigadagi taʼlimtarbiya jarayonini isloh qilish xozirgi kundagi dolzarb masalalardan biri ekanligini koʼrsatib shunday dedi: “... bugungi kunda oldimizga qoʼyilgan buyuk maqsadlarimizga, ezgu niyatlarimizga erishishimiz, jamiyatimizni yangilashda xayotimizning taraqqiyoti va istiqboli amalga oshirilayotgan isloxotlarimiz, rejalarimizning samarasi taqdiri – bularning barchasi, avvalambor, zamon talablariga javob beradigan yuqori malakali, ongli mutaxassis kadrlar tayyorlash muammosi bilan bogʼliqligini barchamiz anglab yetmoqdamiz”.

Shu bilan birga hammamiz yana bir haqiqatni anglab yetmoqdamiz, “Faqatgina chinakam maʼrifatli odam inson qadrini, millat qadriyatlarini, bir soʼz bilan aytganda, oʼzligini anglash, erkin va ozod jamiyatda yashash, mustaqil davlatimizning jahon hamjamiyatida oʼziga munosib, obroʼli oʼrin yegallashi uchun fidoiylik bilan kurashish zarur”. Xalqning boy intelektual merosi va umumbashariy qadriyatlari, zamonaviy madaniyat, iqtisodiyot, fan texnika va texnologiyalarning yutuqlari asosida zamon talablariga javob bera oladigan kadrlar tayyorlashning mukammal tizimini shakllantirish, Oʼzbekiston taraqqiyotining muhim shartidir.

Jamiyatni axborotlashtirish inson hayotining barcha jabhalarida intellektual faoliyat turlarining koʼpayishi, iqtisodning oʼsishi, fantexnika taraqqiyotining jadallashishi uchun xizmat qiladi. Biz qaysi soxada faoliyat ko’rsatmaylik, kundalik ish faoliyatimizga oid tasvirlar yaratish (rasmlar, chizmalar, grafiklar, diagrammalar va boshqa illustratsiyalar), ularni qayta ishlash, zarur boʼlganda internet tarmogʼiga joylashtirish kabi muammolarga duch kelamiz.

Insonning boshqa mavjudotlardan farqi - oldiga maʼlum bir maqsad qoʼyib, soʼng unga tomon harakat qilishidadir. Kishi maqsadi sari qiladigan harakati (faoliyati) jarayonida muayyan tabiiy va sunʼiy toʼsiqlarni yengib oʼtadi. Bu toʼsiqlarni bartaraf etish uchun u bir qator tadbir va choralardan foydalanadi.

Maqsadga yetishda muayyan toʼsiqni yengib oʼtish uchun qoʼllaniladigan tadbir va choralar majmuini usul deyiladi. Maqsadga yetishda bir necha, goho oʼnlab, yuzlab toʼsiqlarni yengib oʼtish usullari maʼlum bir tizimda qoʼllaniladi. Maqsadga yetishda qoʼllaniladigan usullar tizimini uslub (yoʼl) deyiladi. Usullarning maʼlum bir uslubda qoʼllanish jarayonida har bir harakat maqomi muayyan maqsad koʼrsatkichlariga boʼysundiriladi. Undan tashqari, kishi maqsadga yetish jarayonida bir qator qonuniyatlarga ham tamoyil sifatida amal qiladi. Kishi maqsad sari qilgan harakatida uning uchun tamoyil vazifasini bajaruvchi maqsad koʼrsatkichlari bilan harakati davomida amal qilinishi shart boʼlgan qonuniyatlar majmuiga metodologiya deyiladi. Har bir shaxsni, ijtimoiy guruhni va butun jamiyatni eng umumiy va xususiy maqsadlari boʼladi, inchunin, ularning eng umumiy, umumiy va xususiy metodologik asoslari mavjud.

Har bir sohada mavjud maqsad koʼrsatkichlari bilan faqat shu sohada xukm suruvchi qonuniyatlar shu sohada faoliyat koʼrsatkichlari uchun umumiy metodologik asos hisoblanadi. Odamlar faoliyat koʼrsatish jarayonida oʼz ishlarini eng umumiy, umumiy va xususiy metodologiyalardan birday kelib chiqqan holda amalga oshiradilar. Aks holda qilgan harakatlari zoye ketadi. Usul, uslub va metodologiya tushunchalariga umumfalsafiy taʼrif berib chiqqanimizdan soʼng, ularning oʼquv jarayonida ishlatilishini koʼrib chiqamiz.

Insonning boshqa mavjudotlardan farqi - uning oʼz oldiga maqsad qoʼyib, maqsad sari harakat qilishidir, deb taʼkidladik. Tabiiy savol tugʼiladi. Bu maqsadlar qayoqdan paydo boʼladi? Javob: har qanday maqsad alohida bir shaxs, ijtimoiy guruh yoki millatning ehtiyojidan kelib chiqadi.

Inson bioijtimoiy mavjudot boʼlganligidan, uning biologik ehtiyoji barobarida ijtimoiy ehtiyoji ham mavjud. Ijtimoiy ehtiyojga kishining ijtimoiy taraqqiyoti natijasida vujudga keladigan fikr yuritish, fikr almashish, bilim olish, mehnat qilish, zavqlanish, sevish va sevilish kabi ehtiyojlar kiradi. Ehtiyojni qondirish ustida maʼlum vaqt fikr-muloxaza yuritilgandan keyin, ehtiyoj yo inkor qilinib bostiriladi, yoki unga yetishish maqsad qilib qoʼyiladi.

Maqsad va uning koʼrsatkichlari aniq boʼlganidan keyin, unga yetishish usullari tizimi izlab topiladi va harakat boshlanadi. Shundan maqsad koʼrsatkichlari bilan harakat paytida oʼz mavjudligini namoyon qiluvchi qonuniyatlar yigʼindisi ushbu faoliyatning metodologik asosini, yaʼni amal qilinishi shart boʼlgan tamoyillar majmuini tashkil qiladi.

Taʼlim sohasining umumiy maqsadi huquqiy demokratik davlat hamda odil fuqarolik jamiyatining talablariga javob beruvchi kishilarni tarbiyalab berishdan iboratdir.

Oʼzbekistonda mualliflar tomonidan olib borilgan tadqiqotlar shuni koʼrsatdiki, erkin, maʼrifatli va demokratik davlat fuqarolari quyidagi ijtimoiy sifatlarga ega boʼlishi kerak:

• Aqlli - mustaqil fikr yurita oladigan;

• Odobli - millatimiz toʼplagan barcha fazilatlarga yega;

• Mehnatsevar - mehnat kishining ijtimoiy ehtiyojiga aylanganligi;

• Bilimli - diniy, dunyoviy va fazoviy bilimlarni koʼp va chuqur egallab olib, ularni hayotda qoʼllay olishi;

• Sogʼlom - jismoniy, ruxiy va ijtimoiy salomat;

• Milliy gʼoyaga ega - ajdodlarimizning moddiy va maʼnaviy merosini egallab, ular bilan faxrlanuvchi va ularni boyitishga xissa qoʼshuvchi;

• Vatanparvar - Vatan uchun, halq uchun fidokorona mehnat qiluvchi, ularni muhofaza qila oluvchi va zarur boʼlsa ular uchun jonini qurbon qiluvchi;

• Insonparvar - inson zotiga faqat yaxshiliklar ulashuvchi va ular uchun yezgu ishlar qiluvchi;

• Jasur va shijoatli - har bir ishga mardona kirishib, uni shijoat bilan oxiriga yetkazuvchi.

• Bu oʼnta ijtimoiy sifat jamiyat ehtiyojlaridan kelib chiqqan davlat buyurtmasi boʼlib, taʼlim sohasida faoliyat koʼrsatayotgan har bir inson ulardan umumiy metodologik asos sifatida foydalanishi kerak.

Axborot texnologiyalari toʼgʼrisida soʼz yuritilganda, odatda koʼz oldimizda kompyuter texnologiyalari mujassamlanadi. Buning sababi, shaxsiy kompyuterlarning ixtiro etilishi axborot texnologiyalarining ommaviylashishiga va uni keng miqyosda tatbiq yetilishiga olib kelinganligidadir. Chunki shaxsiy kompyuterlarning paydo boʼlishi natijasida axborot texnologiyalarining mahsuli boʼlgan dasturiy vositalarga zaruriyat ortib, kundalik ehtiyojga aylanib bormoqda. Yangi axborot texnologiyalari asosida boshqarishni avtomatlashtirish, ish yuritish, moliya ishlarini avtomatlashtirilgan holda boshqarishni taʼminlash kabi ishlarni bajarish imkoniyatlari tugʼildi. Bundan tashqari yangi axborot texnologiyalari tufayli yuzaga kelgan juda katta imkoniyatga yega boʼlgan muharrirlarni, tarjima qiluvchi dasturiy vositalarni keltirish mumkinki, ularning yaratilishi taʼlim tizimida ham oʼz samarasini bermoqda. Shu oʼrinda olamshumul ahamiyatga yega boʼlgan telekommunikatsion (kabelli, shisha tolali, sputnikli) aloqa vositalari asosida tashkil yetilgan Internet tizimining insoniyatga juda keng imkoniyatlar yaratganligini taʼkidlash lozim. Internet hozirgi kunda butun insoniyat bilimlarini birlashtirish, ularning aqliy qobiliyatlaridan unumli foydalanish kabi masalalarni yechish bilan bir qatorda, yangi adabiyotlar to’gʼrisida maʼlumot olish, masofadan turib oʼqitish texnologiyalarini amalga oshirish, haqida maʼlumotlar olish, kundalik gazetani oʼqib turib, ob-havo toʼgʼrisida maʼlumot olish, kompyuter o’yinlarini o’ynash, yangi ish joyi topish, magazindan xarid qilish va hatto keng miqyosdagi biznes ishlarini amalga oshirish mumkin. Uchinchi ming yillikning boshlarida 120 mln. kompyuter yagona dunyo tarmog’iga ulangan, ulardan 1 mlrd. dan ziyod odamlar foydalanmoqda.

Bugungi kunda mamlakatimiz taraqqiyoti yoʼlidagi ustuvor vazifalardan biri bilimli milliy kadrlarni tayyorlash uchun taʼlim tizimini investisiyalash va axborot kompyuter texnologiyalarining rivojlanishini taʼminlashdan iborat ekanligi «Kadrlar tayyorlash Milliy dasturi» da belgilab qo’yilgan.

Respublikamizda oshiralayotgan islohotlarining bosh maqsadi va harakatga keltiruvchi kuchi – har tomonlama rivojlangan barkamol insondir. Mamlakatimizda rivojlanishning muhim sharti zаmonaviy iqtisodiyot fan, madaniyat, texnika, texnologiya rivoji asosida kadrlar tayyorlanishlarning takomillashgan tizimini yaratishdan iborat.

Mavzuning dolzabligi. “Kadrlar tayyorlash milliy dasturi” ni amalga oshirishda uzluksiz ta’lim tizimining tuzilmasi va mavzusini zamonaviy ilmiy fikrlar yutuqlari va ijtimoiy tajribaga tayangan holda tub islohotlari ko‘zda tutilgan. Buning uchun, avvalo, uzliksiz ta’lim tizimining barcha shakldagi ta’lim muassalarida ta’lim jarayoni sifatida ta’minlovchi ilg‘or ilmiy-metodik jihatdan asoslangan uslublarni amalda qo‘llash lozim. Fanda texnika va ilg‘or texnologiya yutuqlaridan foydalangan holda yosh avlodga ta’lim va tarbiya berishning maqsad, maznun, uslub va vositalarini ilmiy jihatdan ta’minlash pedagogika faning dolzarb muammolarning biri hisoblangan.

Kadrlar tayyorlash sohasidagi davlat siyosati uzluksiz ta’lim tizimini orqali shaxsning har tomonlama barkamol bo‘lib yetishining ko‘zda tutadi. Shaxs uzluksiz ta’limda va kadrlar tayyorlashda ta’lim va xizmatlarining iste’molchisi sifatida namoyon bo‘ladi.

Shaxs ta’lim xizmatlarining ishlab chiqaruvchisi sifatida ta’lim jarayonida bilim va tajribani talaba (yoki o‘quvchi)ga uzatish, ishlab chiqarish moddiy muhiti sharoitida, shunungdek, fan, madaniyat va ta’lim xizmatlarida ishtirok etadi.

Respublikada shaxslarga o‘z ijodiy salohiyatini amalga oshirish uchun mutaxasislik ta’lim dasturini tanlash huquqi berilgan. Oliy ta’lim uzluksiz ta’limda muhim o‘rinni egallaydi. Oliy, umumiy o‘rta, o‘rta maxsus, kasb-hunar ta’limlari asosida uzluksiz ta’lim tizimining mustaqil turi hisoblanadi va O‘zbekiston Respublikasi “Ta’lim to‘g‘risida”gi Qonuni va “Kadrlar tayyorlash milliy dasturi”ga muvofiq amalga oshiriladi. Ushbu hujjatlarda oliy ta’limning belgilangan vazifalaridan biri yuqori saviyada o‘qitishni ta’minlash va malakali kadrlarni zamonaviy ta’lim kasb-hunar dasturlari asosida tayyorlashdir. 

Kurs ishining maqsad va vazifalari: Xozirgi axborotlashgan zamonda biz yoshlardan barcha soxalarda dasturlash va axborotlashtirish bilimlariga ega boʼlishimiz, bu bilimlarni amaliyotda qoʼllashimiz va rivojlantirishimiz va yanada qulay va katta ahamiyatga ega dasturlash dasturlarini yaratishimiz uchun kerakli bilimlarni berishdir. Shuningdek, dasturlash asoslarining C# dasturlash tilida vorislik tushunchasu va vorislik asosida misollar yaratish bo’yicha o‘quvchilarga ma‘lumot berishdan iborat.






II.Vorislik

2.1Vorislik haqida tushuncha.

Vorislik – bu obʼektga yoʼnaltirilgan dasturlashning asosiy asosiy tamoyillaridan biri xisoblanadi. Vorislik asosan katta loyihalar qilish davomida ishlatiladi. Vorislikda ishlatiladigan klasslar ikki turga boʼlinadi:

1. Base class(Superclass) – asosiy klass yoki ota klass deb yuritiladi(dasturchilar tomonidan asosan Superclass deb nomlanadi).

2. Derived class (Subclass) – olingan yoki farzand klass deb yuritiladi (dasturchilar tomonidan asosan subclass deb nomlanadi).

Obʼektga yoʼnaltirilgan dasturlash tilida vorislik turlarga boʼlinadi. Bu turlarga quyidagilar kiradi:

1. Oddiy (yagona) vorislik (Single inheritance)

2. Koʼp bosqichli vorislik(Multilevel inheritance)

3. Koʼp vorislik(Multiple inheritance)

4. Koʼp darajali vorislik(Multipath inheritance)

5. Ierarxik vorislik(Hierarchical Inheritance)

6. Gibrid vorislik(Hybrid Inheritance)


Vorislik – bu imkoniyatdan mavjud sinfdan yangi sinflar yaratishda foydalaniladi. Yangi sinflar mavjud sinflarning funksionalligini asos sifatida voris qilib olishi mumkin. Eski sinflar bu yerda ona yoki bazali sinflar deyiladi. Yangilari esa – avlod yoki qiz farzand sinflar yoki sinfning hosilalari deb ataladi. Yangi sinflar eskisining funksionalligini kengyatiradi, shuning uchun u kabi ishlaydi, lekin va yana ba’zi bir eskisida yo’q narsalarni beradi.

Vorislik o’rnatilishida avlod sinf mavjud bo’lib, ishlashi uchun ona sinfning barcha a’zolari public yoki protected atributi orqali berilishi kerak.

Bazali sinfga misol sifatida quyidagini (1-listing) keltirishimiz mumkin:


1-listing

class Avto // Avtomobil

{

const int maxTezlik = 90; // Avtomobil tezligining maksimumi

int AvtoTezlik; // Maydon

public int Tezlik // Xossa (umumruxsatli bo'lishi kerak)

{

get { return AvtoTezlik; }

set

{

AvtoTezlik = value;

if (AvtoTezlik maxTezlik) // Avtomobil tez-ligini nazorat qilish

AvtoTezlik = maxTezlik;

}

} // Tezlik

}//Sinf


Bu yerdagi Avto sinfida mashina tezligini ko’rsatuvchi AvtoTezlik maydonidan iborat. Tezlik xossasi yaratilishi asosida, foydalanuvchi tomonidan kiritilgan maksimal tezlik qiymatini, xossa orqali (set) konstanta hisoblangan maxTezlik bilan tekshirish yotadi. Agar ushbu holat yuz bersa, maksimal tezlik qiymati foydalanuvchi tomonidan kiritilgan qiymat bilan tenglashtiriladi.

Endi yangi sinf yaratamiz, unda Avtomobil markasini tasvirlaydigan maydon hosil qilamiz. Bu maydonning nomini AvtoNom deb nomlaymiz. Ayonki, ushbu ma’lumotlarga mos yangitdan sinf yaratish mantiqsiz, u allaqachon ishlab chiqilgan va unga yangi ma’lumotlarni qo’shamiz. Yaxshisi oldin mavjudlaridan foydalanamiz, keyin esa o’zimizniki qo’shamiz. Ya’ni mavjud bo’lgan tayyor funksionalliklarni voris qilib olish maqsadga muvofiq.

Avlod sinfga misol quyidagi 2-listingda berilgan:


2-listing

class My_car : Avto

{

const int maxNom = 20;

string AvtoNom; // Maydon — avtomobil markasi

public string Nom // Xossa (umumruxsatli bo'lishi ke-rak)

{

get { return AvtoNom; }

set

{

AvtoNom = value;

if (AvtoNom.Length maxNom)

AvtoNom = "Xato: marka nomi 20 tadan katta bo'lmasligi kerak";

}

}

}


Bu listing ham oldingi 1-listingda berilgan konstruksiyaga o’xshash, shuning uchun faqat birinchi satrni izohlaymiz. Demak, avlod sinfni e’lon qilish uchun avlod sinf nomidan so’ng ikki nuqta belgisi qo’yilib, so’ng uning bazali (ona) sinfi yoziladi.

Endi bu ma’lumotlar asosida, bu ikki sinfni bitta dasturda yozib, dasturning asosiy qismi Main() da ularni ishlatib ko’ramiz.

Dasturda Tezlik xossasini ona sinfdan olib, uni avlod sinfda o’zgartiramiz va avlod sinfda avtomobil markasi bilan ishlaymiz. Dasturning to’liq ko’rinishi 3–listingda berilgan.


3-listing

using System;

namespace DasturAvlodAjdod

{

internal class Avto // Avtomobil

{

private const int maxTezlik = 90; // Avtomobil tez-ligining maksimum qiymati

private int AvtoTezlik; // Maydon

public int Tezlik // Xossa (umumruxsatli bo'lishi kerak)

{

get { return AvtoTezlik; }

set

{

AvtoTezlik = value;

if (AvtoTezlik maxTezlik) // Avtomobil tezligini nazorat qilish

AvtoTezlik = maxTezlik;

}

} // Tezlik

}//Sinf

internal class My_Avto : Avto

{

private const int maxNom = 20;

private string AvtoNom; // Maydon — avtomobil mar-kasi

public string Nom // Xossa (umumruxsatli bo'lishi kerak)

{

get { return AvtoNom; }

set

{

AvtoNom = value;

if (AvtoNom.Length maxNom)

AvtoNom = "Xato: marka nomi 20 ta belgidan katta bo'lmasligi kerak";

}

}

}

internal class Program

{

public static void Main()

{

Console.WriteLine("Ushbu sinf vorisdir:");

Avto Avto_oby = new Avto { Tezlik = 85 };

// bazali sinfdagi obyektni initsializatsiyalash

Console.WriteLine("Ona sinfdagi tezlikni o'rnatish: {0}", Avto_oby.Tezlik);

My_Avto Avto1 = new My_Avto { Nom = "Volvo" };

//Obyektni initsializatsiyalash

Avto1.Tezlik = 88;

Console.WriteLine("Avtomobil markasi: " + "{0}\nQiz sinfdagi tezlik: {1}", Avto1.Nom, Avto1.Tezlik);

}

}

}


Birinchidan, shuni yodddan chiqarmasligimiz kerakki, xossa public atributiga ega bo’lishi, ya’ni umumruxsatli bo’lishi kerak. Agar public atributida ko’rsatilmasa, kompilyator sinfning bu a’zosini avtomatik ravishda private atributiga o’zlashtiradi. Lekin xossa avtomatik bo’lsa, u holda jimlik bo’yicha u public atributiga tegishli bo’ladi. Bizning holatda xossa avtomatik ravishda e’lon qilinmagan, mukamallashtirilgan sintaksis bilan an’anaviy usulda berilgan.

Ikkinchidan, sinfning hosilasida obyekt yaratilsa, uning barcha a’zolari qiymat qabul qilishi kerak, shu jumladan, tabiiyki, konstruktor orqali yoki to’g’ridan-to’gri onasidan o’tganlari ham (q. Avto1.Tezlik=88).


Vorislikni ta‘qiqlash

Buning uchun C# tilida maxsus kalit so’zlar mavjud. Agar biror sinfga belgi qo’yilsa, shu sinfdan vorislik olish mumkin emas. Bu so’z – sealed so’zi orqali amalga oshiriladi.

Agar yuqoridagi Avto nomli ona sinfni quyidagicha e’lon qilamiz:


sealed class Avto


Endi ushbu sinfdan vorislik olaylik:


class My_Avto : Avto


Bu holatda kompilyator xatolik haqida xabar beradi.

C# tilida oldindan mavjud bo’lgan juda ko’plab sinflardan vorislik olib bo’lmaydi. Masalan,


class My_String : string { }


deb yozish aslo mumkin emas. Chunki String sinf “muhrlab qo’yilgan”.


2.2.Konstruktorlar va vorislik


Sinflar iyerarxiyasida, bazali sinflar va hosila sinflar uchun xususiy konstruktorlar ishtirok eta oladi. Shu holatli asosli savol paydo bo’ladi: qaysi konstruktor sinfning hosilasi obyektini qurishga javob bera oladi? Bazali sinf konstruktorimi, hosila sinf konstruktorimi yoki ikkilasi hammi? Bu savolga shunday javob beramiz: bazali sinfning konstruktori obyektning bazali qismini konstruksiyalaydi, hosila sinfning konstruktori esa, bu obyektning hosila qismini konstruksiyalaydi. Va bunda mantiqan, bazali sinfda noma’lum bo’lgan va hosila sinfning istalgan elementiga ruxsat etilmaganlari bir qancha, demak, u alohida konstruksiyalangan bo’ladi.

Agar konstruktor faqat bazali sinfda aniqlanganda (bunda maxsuslashtirilgan konstruktor deb nomlanadi, ya’ni parametrlari bilan), barchasi juda oddiy bo’ladi: hosila sinfning obyekti konstruksiyalanadi, obyektning bazali qismi esa, jimlik bo’yicha avtomatik konstruksiyalanadi (bazali sinfda konstruktor yo’q, taxminimizcha, demak, u jimlik bo’yicha olinadi).

Agar konstruktor bazali sinfda aniqlansa, obyektni qurishda biroz jarayon murakkablashadi, ikkila sinfda bir konstruktorlarni joriy qilishga to’g’ri keladi. Bazali sinfda ko’plab konstruktorlar bo’lishi mumkin. Aniq holatda ulardan qaysi birini joriy qilish kerak? Bazali sinfdagi kerakli konstruktorni ishga joriy etish uchun base kalit so’zidan foydalanishga to’g’ri keladi.

Hosila sinfda bazali sinfdagi konstruktorni e’lon qilish formasi umumiy ko’rinishda quyidagicha bo’ladi:


hosila_sinf konstruktori (parametrlar ro’yxati): base (parametrlar ro’yxati)

{

//konstruktorning tanasi

}


Bu yerda base (parametrlar ro’yxati) – bundagi parametrlar bazali sinfdagi kerakli konstruktorni ishga yurgizish uchun qo’llaniladi. Qaysi konstruktorni ishga yurgizish kerak bo’lsa, kompilyator uning miqdori va parametr tiplari bo’yicha aniqlaydi. Maydon initsializatsiyalashtirilgandan keyin, obyektning hosilasiga ma’lum bo’ladi.

Quyidagi misolni ko’raylik (3-listing).


3-listing

using System;

namespace app28_base

{

internal class MyClass

{

public int x, y, z; // Maydonlar

//Bazali sinfning konstruktori

public MyClass(int x, int y, int z)

{

this.x = x;

this.y = y;

this.z = z;

}

}

internal class Hosila_sinf : MyClass

{

private int A; // maydon

public Hosila_sinf(int A, int x, int y, int z)

: base(x, y, z)

{

this.A = A; //Voris maydonni initsializatsiyalash

}

// Voris-sinf metodi

public void Aer(Hosila_sinf new_A)

{

// Vorisiylikda bazali sinf maydonlarini o'rnatish:

new_A.x += new_A.A;

new_A.y += new_A.A;

new_A.z += new_A.A;

Console.WriteLine("Hosila sinfdagi obyektning yangi koordinatalari {0} {1} {2}", new_A.x, new_A.y, new_A.z);

}

}

internal class Program

{

private static void Main()

{

Console.WriteLine("Base kalit so'zi bilan ishlash\n");

Hosila_sinf obj = new Hosila_sinf(5, 2, 3, 4);

Console.WriteLine("Bazali sinf obyektining koordinatalari: {0} {1} {2}", obj.x, obj.y, obj.z);

obj.Aer(obj);

Console.ReadLine();

}

}

}

Takrorlaymiz, base kalit so’zi yordamida istalgan shaklda konstruktorga murojaat qilish mumkin.

Endi esa base kalit so’zi yordamida hosil qilingan prinsipni qisqacha ko’rib chiqamiz. Qachonki, hosila sinfda base kalit so’zi ko’rsatilsa, bevosita bazali sinfdan konstruktorni chaqiradi. Shunday ekan, bazali sinfga har doim base kalit so’zi orqzli murojaat qilinadi, sinflarga murojaatda bevosita iyerarxiyaga chaqiriladi. base() metodining argumentlari sifatida bazali konstruktorga argumentlar jo’natiladi. Agar kalit so’z mavjud bo’lmasa, jimli bo’yicha bazali sinfdan foydalanib konstruktor avtomatik chaqiriladi.

2.3.Muhrlangan sinfni sinfga qoshish

Ko’rib chiqdikki, muhrlangan sinfdan vorislik olib bo’lmaydi. Ayrim holatlarda o’zimizning sinfimizda ushubu murhlangan sinfning a’zolaridan foydalanishni istaymiz. Bu qanday bajariladi? Takrorlaymiz, vorislikka yo’l qo’yilmaydi. Bu muammoni yechish uchun muhrlangan sinfda olingan elementni chaqirish usulini qo’llaymiz.

Quyidagi dasturda (4-listing) muhrlangan sinfdan foydalanish ko’rsatilgan:

4-listing

using System;

namespace app29_include_sealed

{

sealed public class A

{

private int a; // Maydon

private int b;

// Xossa

public int A_a

{

get { return a; }

set { a = value; }

}

public int A_b

{

get { return b; }

set { b = value; }

}

// Konstruktor

public A(int a, int b)

{ this.a = a; this.b = b; }

// Metod

public int M_A()

{

return (a + b);

}

}

internal class B

{

public int c;

public A ab = new A(15, 20);

public B(int cc)

{

c = cc;

}

}

internal class Program

{

public static void Main()

{

B ba = new B(5);

int sum = ba.c + ba.ab.M_A();

Console.WriteLine("Yaratilgan obyektda Muhrlangan sinfdan foydalanish");

Console.WriteLine("B sinfning maydoni bilan = {0}", ba.c);

Console.WriteLine("Muhtrlangan A sinfining maydoni= {0}, {1}", ba.ab.A_a, ba.ab.A_b);

Console.WriteLine("A dagi va B dagi metodlar yig'indisi natijasi: {0}", sum);

}

}

}


Demak, muhrlangan A sinfida ikkita maydon mavjud, ruxsat faqat ikkita mos xossalar orqali amalga oshiriladi: A_a va A_b. A sinfi M_A() metodiga ega bo’lib, u yopiq maydonlarning qiymatlari yig’indisini hisoblaydi. Biz B sinfini qurishda bitta c maydoni va muhrlanga sinfidan olinga ab obyektidan foydalandik. Ekranda chiqarilgan ma’lumotlarga qarasak (8.6-rasm), garchi vorislik bo’lmasa ham, A sinfning funksionalligidan B sinfida foydalanilgan (shu jumladan, M_A() metodidan ham). Agar e’tibor bergan bo’lsak, biror sinfning obyekti boshqa sinfning ichida joylashgan bo’lsa, bu holatda sinfning ichidagi obyektga murojaat qilish uchun nuqta amalidan foydalanilgan Buni


int sum = ba.c + ba.ab.M_A();


satrida kuzatishimiz mumkin. Bu yerda ab obyekti B sinfining ichida joylashgan.

Ichki sinflar. Poliforizm


Yuqoridagi misolda biz ichki tiplarni qo’lladik: C# tilida ichki tiplarga ruxsat beriladi( Bu holatda sinf tipi nazarda tutilmoqda, qolgan tiplarni bunday ishlatish haqida bilmaymiz). Bunda ichki tiplar oddiy a’zolarini yoki ichki sinflarni qamrab olgan hisoblanadi. Ichki sinflarga misol:

public class TashqiSinf

{

public class IchkiSinf1 { }

private class IchkiSinf2 { }

}


Agar ichki sinflardan foydalanishimiz uchun, undagi mavjud bo’lgan barcha sinflarni nuqta amali vositasida ketma-ket yozib chiqishimiz kerak. Misol sifatida yuqorida e’lon qilingan IchkiSinf1 sinfida yaratilgan obyektni asosiy dasturda e’lon qilishni ko’rib chiqamiz:


static void Main()

{

TashqiSinf.IchkiSinf1 obj1 = new TashqiSinf.IchkiSinf1();

}


Agar ichki sinflar bir nechta tashqi sinflar ichida joylashsa uning obyektini yaratish uchun biroz ko’proq yozuv yozishimizga to’g’ri keladi. Bu muammoni bartaraf etish usuli allaqachon o’ylab topilgan. Buning uchun integrallashgan muhitning Podskazchiklari yordamga keladi. Agar biz birinchi turgan tashqi sinfni yozishimiz bilanoq, u bizga unda mavjud bo’lgan a’zolar va ichki sinflar haqida ma’lumotni beradi. Darhol ulardan birini tanlab klavishasini bosib ketaveramiz. Shu bilan biz kerakli sinfga yetib olamiz.


Polimorfizm

Bu so’zning ma’nosi “ko’pshakllilik”dir. Avlod sinfning vorisligidan so’ng, bazali sinfda bazali sinfning metodlari paydo bo’ladi, bu bazali metodlardan keraklilari hosilaviy sinfning talablariga ko’ra qayta ishlanishi vujudga keladi. Kllassik misol keltiramiz: “Ko’pburchak” va “Aylana”. Ikkalasi ham Object sinfining vorisi bo’lib, Draw() metodi shakllarni chizish uchun aniqlangan. Lekin 5Draw() metodi joylashgan. Polimorfizm prinsipi Draw() metodining turlicha “to’ldirilishiga” imkoniyat beradi, metodning nomi esa o’zgarishsiz qoladi. Ya’ni bazali sinfning oldingi metodi ikkilasining avlod-ajdodida yangi ro’yxatni qabul qilish imoniyatiga ega bo’ladi (aniqrog’i, kompilyator bularning barchasini ishlatishi mumkin). Aytingchi, bu yerda shakl qani? Bu yerda til filosofiya tushunchalari bizni chalg’itadi, lekin shuni esga olamizki, “shakllantirish” so’zi grek tilida “morfi” deb talaffuz qilinadi. Bu nuqtayi nazar bilan qaraganda oldingi Draw() metodi ikkita turli avlod-ajdoddagi “shakl”ni oladi. Budan polimorfizm: ko’p shakllar.

Ushbu jarayonda oldingi metodlarni yangisiga o’zgartirib tarqatuvchilar qayta aniqlanuvchi metodlar (method overidding) deb nomlanadi. Buning hisobiga kompilyator qandaydir ma’lumotlarni qayta aniqlanish imkoniyati uchun berishi kerak. Ma’lumot shunday bo’ladi: agar biz bazali sinfing ichki sinfida bir qancha metodlarning qayta aniqlanishiga ruxsat bersak, u holda bu metod virtual atributi orqali ta’minlanishi kerak. Binobarin, ma’lumoki Draw() metodi bir qancha shakllarni chizadi, taxmin qilishimiz mumkin, ona sinfda u virtual atributida joylashgan. Ushbu metodlar virtual deb ataladi. Darhaqiqat, bazali sinfda biror virtual atributli metodini joylashtirganimizda, keyinchalik qaysidir avlod-ajdod sinfning funksionalliklari bilan qayta aniqlanuvchi metod bo’lish imkoniyatini beramiz. Ya’ni metodga virtual atributini o’zlashtirganimizda, hozircha boshqa metodlar mavjud emas, boshqacha aytganda, ular mavjud bo’lmaydi, lekin haqiqatda emas, ya’ni virtual emas. Bundan tashqari metod virtual kalit so’zi orqali joylashtirilsa, ushbu metod jimlik bo’yicha bazali sinfning barcha avlodiga tarqalish imkoniyatini qabul qiladi. Agar hosila sinf qaror qilsa, ushbu metod qayta aniqlanadi, lekin uni ishlatish majburiy emas. Ushbu metodni bazali sinfdagi metoddagidek, jimlik bo’yicha oddiy chaqirish mumkin.

Bazali sinfdan kompilyatorga ishora bersak (bu yerda Draw() metodi berilgan bo’ladi), u keyinchalik avlod sinfda qayta aniqlanuvchi bo’lishi mumkin. Kompilyatorga qaysi ishora, uning virtual metod bo’lishi kerakligini anglatadi? Avlodda metodga override atributini o’zlashtirishimiz kerak. Tamom. Zanjir berkitildi. Demak, “ko’pburchak” aylana sinflarida Draw() metodi override atributiga ega bo’lishi lozim.

Agar biz bazali sinfning virtual metodining funksionalliklaririni o’rnatmoqchi bo’lsak, qandaydir operatorlarni yana qo’shish, oldingi metodning barcha so’zlarini yozishni istamasak, u holda base kalit so’zidan foydalanish imkoniyatimiz bor. Shunda, masalan, Draw() metodiga murojaat, uning ichki qayta aniqlanishida base.Draw() ko’rinishida bo’ladi.

Qayta aniqlanuvchi metodga doir misol dasturi (5-listing)ni qarab chiqamiz.

5-listing

using System;

namespace app30_overriding

{

public class A

{

private int a; // Maydon

private int b;

// Xossa

public int A_a

{

get { return a; }

set { a = value; }

}

public int A_b

{

get { return b; }

set { b = value; }

}

// Konstruktorlar

public A() { }

public A(int a, int b)

{ this.a = a; this.b = b; }

// Virtual metod

public virtual int M_A()

{ return (a + b); }

}

internal class B : A

{

private int a;

private int b;

private int c;

// Xossa

public int C_c

{

get { return c; }

set { c = value; }

}

// Konstruktor (Bazali sinfning qaysi konstruktoriga murojaatni ko'rsatadi)

public B(int aa, int bb, int cc)

: base(aa, bb)

{

a = aa; b = bb; c = cc;

}

/* Bazali sinfda qayta aniqlanuvchi metod: U "c" maydonini kvadratga ko'taradi va natijani oldingi metodning (A sinfidagi) natijasiga qo'shadi.*/

public override int M_A()

{

return (base.M_A() + c * c);

}

}

internal class Program

{

public static void Main(string[] args)

{

Console.WriteLine("Qayta aniqlanuvchi metodning natijasi");

B b_b = new B(5, 6, 7);

Console.WriteLine("Ona-sinfdagi birinchi maydon — {0}\nOna-sinfdagi ikkinchi maydon — {1}", b_b.A_a, b_b.A_b);

Console.WriteLine("Hosilaviy sinf maydonining qiymati —{0}\nQayta aniqlanuvchi metod natijasi — {1}", b_b.C_c, b_b.M_A());

}


2.5 Vorislikda murojaat huquqlari.

Vorislikda asosiy sinfning ba'zi komponenta ma'lumotlari yoki komponenta funksiyalari hosilaviy sinfda yangidan ta'riflanishi mumkin. Bu holda asosiy sinfning komponentalariga hosilaviy sinfdan to’g’ridan-to’g’ri murojaat qilib bo’lmaydi. Bu holda ko’rinish doirasini aniqlovchi ^:: amalidan foydalanish lozimdir. Har qanday komplament sinf o’z o’rnida boshqa sinflar uchun hosilaviy bo’ladi. Sinflar va ob'ektlar ierarhiyasida hosilaviy ob'ekt hamma asosiy sinflarning ruhsat berilgan komponentalarini hisobga oladi. Sinflar volisligida komponentalarning murojaat huquqlari katta rol o’ynaydi. Haqiqiy sinf uchun komponentalari ta'sir doirasida yotadi. Shuning uchun sinfga tegishli har qanday funksiya ihtiyoriy komponenta ma'lumotlariga murojaat qilishi va sinfga tegishli ixtiyoriy funksiyani chaqirishi mumkin. Sinf tashqarisida faqat public huquqiga ega komponentalarga murojaat qilish mumkin. Sinflar perergiyasida sinf komponentalariga murojaat huquqlari quyidagilar:

Xususiy (private) metodlar va ma'lumotlarga faqat sinf ichida murojaat qilish mumkin.

Himoyalangan (protected) komponentalari o’z sinflari va shu sinfga me'rosxo’r bo’lgan hamma hosilaviy sinflarga murojaat qilish mumkin.

Umumiy (public) komponentlar global ya'ni dastur ixtiyoriy nuqtasidan murojaat qilish mumkin.

Himoyalanganlari murojaat sinf clarl, istruct yoki union so’zlarining qaysi biri bilan ta'riflanganligiga ham bog’liqdir.

A " ekrandagi nuqta" asosiy sinf hisoblansa, uning asosida ekrandagi darcha sinfni o’girish mumkin.

Point sinfidan Jpot sinfi naslga nuqta markazi (h,u) koordinatalarini va givek, givey metodlarni oladi, Point : : show () va point : : move () metodini huddi shu nomli yangi funktsiyalar bilan almashtirilgan.point :: hide funktsiyasi nomi o’tmaydi chunki point sinfida u hususiy (private) statiyasiga ega. Stop() konstruktor uch parametrga ega -mernez koordinatalari (xi,yi) va doira radiusi (ri).

Avval point sinfi konstruktori chaqiriladi bu konstruktor xi,yi ga mos keluvchi haqiqiy parametr asosida doira markazini aniqlaydi. Asosiy sinf konstruktori har doim hosilaviy sinf konstruktoridan oldin chaqiriladi. So’ngra spot() sinfi konstruktolari boshlanadi. Bu konstruktor vi1, tag parametrlarining boshlang’ich qiymatini aniqlaydi va ri gamos keluvchi haqiqiy parametr qiymati asosida doira radiusi red aniqlanadi. Standart funktsiya imagelizi yordamida doira joylashuvchi kvadratik operativ hotirada aniqlash uchun zarur bo’lgan hotira hajmi hisoblanadi. Kerakli hotira new standart operatsiya yordamida ajratib size elimentidan iborat chur massivlar yoziladi. Agar aytilgan hotira spot sinfida protected statutisiga ega bo’lgan spot ko’rsatkichiga ulanadi.

Sinfning har bir ob'ekti yaratilganda sinf konstruktori chaqirilib, ob'ekt uchun kerakli hotira yaratish va liniyalizatsiya qilish vazifalarini bajaradi. Ob'ekt yuqotilganda yoki sinf ta'sir doirasidan tashqariga chiqilganda teskari inertsiyalarni boshqarish kerak bo’lib,bu lediatsiyalar ichida eng kirishli hotirani ozod qilishdir. Bu vazifalarni boshqarish uchun sinfga mahsus funktsiya dastruktor kiritiladi. Dastruktor quyidagi shaklga ega bo’lgan aniq nomga ega ~ sinf-nomi.

Dastruktor hatto void tipidagi parametrlarga ega bo’lmaydi va hatto void tipidagi qiymat qaytarmaydi. Destruktor statusi ikki e'lon qilinmagan bo’lsa umumiydir. Sodda sinflarda dastruktor avtomatik aniqlanadi, misol uchun paint sinfida destruktor e'lon qilinmagan va pomilyator qo’yidagi dasturlarni avtomatik chaqiradi
Point () {};

Spot sinfida destruktor anik kurinishga ega;

Spot () {hide (); tag=0;delete [] p1pot;}

Bu dastruktor vazifalari doira tasvirini spot::hide() funktsiyasi orqali o’chirish; tag belgisiga 0 qiymatini berish; ob'ekt bitli tasvirni saqlash uchun ajratilgan hotirani tozalash.
Destruktorlar naslga o’tmaydi, shuning uchun hosilaviy sinfda destruktor mavjud bo’lmasa asosiy sinfdagi destruktor chaqirilmaydi. Balki kominator tomonidan yaratiladi. Ko’rilayotgan misolda quyidagicha;
Public: ~spot () {~point ();}

Asosiy sinflar destruktorlar ruyhatda ko’rsatilganidek teskari tartibda boshariladi. Shunday qilib ob'ektlarni o’chirish tartibi yaratilish tartibiga teskaridir.Sinf ob'ektini va asosiy sinflar uchun destruktorlar avtomatik chaqiriladi. Agar ob'ekt yaratilganda dasturda hotira ajratilgan bo’lsa destruktor dasturda chaqirilishi lozim. Spot sinfi ob'ektlari bilan ishlovchi dasturni keltiramiz:
# Include

# Include

# Include "spot. Cpp"

Void main ()

{Int dr=DETECT, mod;

Initgraph (8dr, 8mod);

{Spot A (200,50,20);

Spot D (500,200,30);

A. show;

Det c ();

O. Show ();

Det ch; A. Move (50,60);

Det ch (); {closegrap ();}

ELIPS, SPOT va SPOTELLI sinflarida POINT sinfining x,y komponentalari nuqtasining ekrandagi koordinatalari naslga o’tadi.POIN sinfida ular himoyalangan (protected) sifatida aniqlangan va bu statusti hosilaviy sinflarda ham saqlab qoladi. SPOTELLI sinfi konstruktori hech qanday vazifa bajarmaydi ketma-ket ELLIPS sinfi va SPOT sinfi konstruktorlari chaqiriladi.U holda yaratilayotgan shakillar markazlari ustma-ust tushadi, doira radiusi sifatida ellipsning radiusi olinadi. Bu holda ishlatiladigan min() funktsiyasi hususiy (private) joylashtirilgan (inline) funktsiya sifatida aniqlangan. Bevosita bo’lmagan sinflar ob'ektlarning bir necha marta yaratilishi oldini olish uchun, bu asosiy sinf virtual sinf deb e'lon qilinadi. Masalan qo’yidagi ta'rifda H sinfi virtual bo’ladi:

Class base

{int j=0,char c='*' )

{jj=j;
cc=c;
}
};
double dd;

public:

dbase (double d=0.0):base()

{dd=d;}

};

class j base ; public virtual base

{float ff ;

public ;

jbase (float j=0.0):base ()

{ff=f;}
};
class top:public dbase,public jbase

{long tt;

public;
top(long t=0):dbase (),jbase ()

{tt=t;}
};
void main()

{cont

cont

cont

cont

ko’plab vorislikda bitta asosiy sinf hosilaviy virtual yoki no virtual bir necha marta kirishi mumkin. Misol keltiramiz:

clarr x{…..};

clarr'/:virtual public x{….}:

clarr z:virtual public x{…};

clarr b :virtual public x{…};

clarr c:virtual public x{….};

clarr e:public x{….};

clarr d:public x{…..};

clarr a :public p;public b;

public y ,public z ;

public c ,public e{…..};

Bu misolda A sinf ob'ekti o’z ichiga H sinfining 3 ob'ektini bitta virtual B ,Y,C,Z sinflari bilan birgalikda ishlatuvchi ; va ikki virtual mos ravishda D va E sinflariga tegishli bulgan.Shunday kilib virtuallik bu sinfning hususiyati emas, balki nasldan-nalga utishning hususiyatidir.

Nasldorlik va ko’plik nasldorlikdan foydalanilganda har hil sinflarning bir hil nomli kompanentalariga murojaat qilganda har hil talqin yuzaga keladi. Bu har hil talqin oldini olishning eng sodda va ishonchli usuli --kompanentalarining kvalifikatsiyalangan nomlaridan foydalanishdir. Kompanenta nomini kvalifikatsiya qilish uchun sinf nomi ishlatiladi. Qo’yidagi misollar kvalifikatsiyalangan nomlardan foydalanish ko’rsatilgan.

Clarr x {public:int d;…}

Clarr y {public:int d;…};

Clarr z :public y,public y,

{public ;

int d;

--------
d=y::d+y::d;
--------
};

Bu dasturning boshqa ko’rilgan dasturlardan printsipial farqi spot sinfida HIDE() kompanenti funktsiyasiga murojat qiluvchi dastruktor ishlashi bilan bog’lik, ishlab chiqarishni blokning mavjudligidir. Agar dasturli point sinfli dasturlar kabi ichki bloksiz yaratilsa dastruktor ochik murojat qilinmaganda faqat dastur tugaganda ya'ni grafik rejim berkitilganda chaqiriladi. Bu hatoni ikki yul bilan oldini olish mumkin.

Yoki A va D ob'ektlani yuqotish uchun destruktorni dasturda chaqirish va shundan so’ng grafik rejimni berkitish yoki grafik rejimni initsializatsiya qilgandan so’ng A va D ob'ektlar aniqlangan ichki blok kiriting.
Bu ichki blokdan chiqilayotganda A va D ob'ektlar avtomatik o’chiriladilar. Buning uchun dastruktor ikki marta avtomatik chaqiriladi. Grafik rejim A,D ob'ektlar yo’qotilgandan so’ng tashqi blokda berkitiladi.









XULOSA

Respublikamizning ijtimoiy siyosiy, iqtisodiy, madaniy, marifiy hayotida yuz berayotgan islohotlar, O’zbekiston Respublikasining “Ta’lim to’g’risida”gi qonuni, “Kadrlash tayyorlash milliy dasturi” hamda uzluksiz ta’lim tizimining barcha bosqichlari uchun joriy etilgan ta’limning davlat standartlari, umumiy o’rta
ta’limning yangi dasturlarining muvaffaqiyatli hal qilishi, tayyorlanayotgan yetuk
mutaxassislarning sifatiga ham bog’liqdir.

Bugungi kunning talab va ehtiyojlari, zamonaviy axborot texnologiyalarining eng so’nggi yutuqlarini hisobga olgan holda dasturlashda vorislik asosida misollar yaratish va uning imkoniyatlarini o’rgandim.

Shuni xulosa qilib aytish mumkinki, bizga C# dasturlash tilinining asoslarini o’rganish kelajakda internet tizimiga turli sahifalarni yaratish uchun foydali bo’lib, keyingi kasbiy faoliyatimdada ham keng foydalanish imkonini beradi.

Hozirgi zamonda yurtimizda Axborat Texnologiyalarini rivojlantirish yo‘lida juda ko‘p ishlar amalga oshirilmoqda. Bu borada davlatimiz ko‘p ishlarni amalga oshirmoqda. Xususan, ko‘p joylarga dasturlash orqali ko‘p loyihalarni oson va qulay bajarilyapti. Dasturlash chet davlatlarida anchagina rivojlangan masalan Amerika,Malayziya, Koreya, Hindiston. Hozirgi kunda har-xil dasturlash tillari mavjud C++,C#, Java, va hokazo. Shularning orasidan C# Windows muhitida ishlaydigan dastur tuzish uchun qulay vosita bo‘lib, kompyuterda dastur yaratish ishlarini avtomatlashtiradi, xatoliklarni kamaytiradi va dastur tuzuvchi ishini kamaytiradi. C# dastur zamonaviy visual loyihalash texnalogiyasi asosida obyektga yo‘naltirilgan dasturlash tili hisoblanadi. Men bu kurs ishi davomida C# dasturlash tilida Vorislik va ularning turlari va ulardan foydalanish haqida ko‘nikmalarni oldim. Vorislik asosan, kata loyihalarni amalga oshirishda dasturlar yaratishda kata qulaylik va qo’shimchalar berishini bilib oldim. Dasturdagi barcha element va hodisalar bekordan emasligini va hammasining o‘z joyi va vazifasi bor ekanligini yaxshi tushunib yetdim. O‘zimni bilimlarimni yanda oshira oldim deb o‘ylayman.

Foydalangan adabiyotlar.


  1. Sh.Mirziyoyev.Erkin va farovon. Demokratik O’zbekiston davlatini birgalikda barpo etamiz O’zbekiston, 2018.

  2. I.Karimov. O’zbekiston buyuk kelajak sari.-T.: O’zbekiston.

  3. I.Karimov. Vatan sajdagoh kabi muqaddasdir. Asarlari, 3-jild.-T.:
    O’zbekiston.

  4. Герберт Шилдт. C# 4.0: полное руководство.: Пер. с англ. М.: ООО ―И.Д. Вильямс‖, 2011. 1056 с.

  5. Справочник. Полное описание языка, 6-е изд.: Пер. с англ. – М.: ООО ―И. Д. Вильямс‖, 2016.

  6. Пахомов Б. И. C# для начинающих. — СПб.: БХВ-Петербург, 2014.

  7. http://dastur.uz-Kompyuter dasrurlari va kompyuterda dasturlashga oid forum,xabar va yangiliklar.

  8. C# bible for absolute begginners. 2014

  9. C# full course in 40 hours. 2017

  10. Object orentiring programming in C#. 2016





Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!