Ob’yektga yo’nalgan dasturlash



Download 261 Kb.
bet10/10
Sana26.07.2021
Hajmi261 Kb.
#129099
1   2   3   4   5   6   7   8   9   10
Bog'liq
19.08A GURUH talabasi Mo'dinova Dinara[1]

(Project → Add Class) qo‘shamiz. Keyin natijalanuvchi dialog oynasida Class belgisini tanlash zarur. Bu esa 5.1 rasmda ko‘rsatilgan va Add qo‘shish tugmasiga bosamiz.

C# da sinfni aniqlash class yordamchi kalit so‘z yordamida amalga oshiriladi. Oddiy mavjud sinflarni e’lon qilish keyingi ko‘rinishda bo‘ladi:

classCar


{

}

Sinfni turini aniqlab bo‘lgach o‘zgaruvchan xadlar to‘plamini aniqlash lozim. Bu aniqlanganlar uni xatoligini tasdiqlash uchun ishglatiladi.



Masalan siz Car ob’ektlari int turidagi berilganlar maydoniga ega bo‘lishi kerak deb echishingiz mumkin. Ular xozirgi tezlikni tasvirlaydi va string tipidagi berilganlar maydoni do‘stona avtomobil ismini tasvirlash uchun ishlatiladi. Boshlang‘ich proektiv xolatini xisobga olgan xolda Car sinfi keyingi ko‘rinishda bo‘ladi.

classCar


{

// The 'state' of the Car.

publicstring petName;

publicint currSpeed;

}

1-rasm. C# sinfiga yangi tipni qo‘shish.

Bu o‘zgaruvchan xadlar public mavjudlik modifikatorini ishlatish bilan e’lon qilingan. Ochiq (public) sinfni xadlari mavjuddir. Sizlarga ma’lum bo‘lishi kerakki “ob’ekt” termini berilgan sinf tipini nusxasini tasvirlash uchun xizmat qiladi, u new kalit so‘z yordamida yaratilgan.

O‘zgaruvchan xadlar to‘plamini aniqlagandan so‘ng, loyihalashtirishdagi keyingi qadam sifatida xadlarini yaratish xisoblanadi, ular uning xolatini modellashtiradi. Bunga misol sifatida Car sinfi SpeedUp() ismi bo‘yicha bitta usulni aniqlaydi va yana bittasi ismi bo‘yicha PrintState() sinf kodini keyingi ko‘rinishda modifikatsiyalaydi

classCar

{

// The 'state' of the Car.



publicstring petName;

publicint currSpeed;

// The functionality of the Car.

publicvoid PrintState()

{

Console.WriteLine("{0} is going {1} MPH.", petName, currSpeed);



}

publicvoid SpeedUp(int delta)

{

currSpeed += delta;



}

}

PrintState() metodi bu qaysidir o‘rinda tashxisli funksiya, u oddiygina Car ob’ektini hozirgi xolatini chiqaradi va u guruxli qatorga chiqadi. SpeedUp() metodi Carni tezligini oshiradi uni kattalikka oshirgan xolda endi Main() metodidagi kodni yangilang u quyida ko‘rsatilgan:



staticvoid Main(string[] args)

{

Console.WriteLine("***** Fun with Class Types *****\n");



// Allocate and configure a Car object.

Car myCar = new Car();

myCar.petName = "Henry";

myCar.currSpeed = 10;

// Speed up the car a few times and print out the

// new state.

for (int i = 0; i <= 10; i++)

{

myCar.SpeedUp(5);



myCar.PrintState();

}

Console.ReadLine();



}

Dasturni ishga tushirib, siz ko‘rishingiz mumkin Car o‘zgaruvchi (myCar) o‘zining xozirgi xolatini butun xayoti davomida ushlab qoladi, u keyingi xulosada ko‘rsatilgan.

***** Fun with Class Types *****

Henry is going 15 MPH.

Henry is going 20 MPH.

Henry is going 25 MPH.

Henry is going 30 MPH.

Henry is going 35 MPH.

Henry is going 40 MPH.

Henry is going 45 MPH.

Henry is going 50 MPH.

Henry is going 55 MPH.

Henry is going 60 MPH.

Henry is going 65 MPH.

new kalit so‘zi yordamida ob’ektlarni joylashtirish

Kodni oldingi misolda ko‘rsatilgandek, ob’ektlar xotiraga new kalit so‘zini ishlatish bilan joylashtirishlari kerak. Agar new kalit so‘zi ko‘rsatilmasa va sinfni o‘zgaruvchisidan foydalanishga u xolda kompilyasiya xatoligi kelib chiqadi.

staticvoid Main(string[] args)

{

Console.WriteLine("***** Fun with Class Types *****\n");



// Error! Forgot to use 'new' to create object!

Car myCar;

myCar.petName = "Fred";

}

Masalan, Main() keyingi metodi kompilyasiyalanmaydi. New kaliti so‘zini qo‘llash orqali ob’ektni korrekt yaratish uchun, xotirasida Car ob’ektini joylashtirish va aniqlash mumkin kodni bitta qatorida.



staticvoid Main(string[] args)

{

Console.WriteLine("***** Fun with Class Types *****\n");



Car myCar = new Car();

myCar.petName = "Fred";

}

Sinfni xotirasini xotirasida alternative sifatida joylashtirish kodni xar hil qatorlarida quyidagicha amalga oshirish mumkin.



staticvoid Main(string[] args)

{

Console.WriteLine("***** Fun with Class Types *****\n");



Car myCar;

myCar = new Car();

myCar.petName = "Fred";

}

Bu yerda kodni birinchi operatori xali yaratilmagan Car tilidagi ob’ektga jo‘natmani e’lon qiladi. Jo‘natmani oshkor o‘zlashtirishi bo‘lgandan so‘ng xotiradagi ob’ektga ko‘rsatadi. Hohlagan xolatda bu haqida biz oddiy sinf tipiga ega bo‘ldik, u bir nechta berilganlar elementlarini aniqlaydi va ba’zi bir bazali operatsiyalarni xozirgi Car sinfini funksionallarini kengaytirish uchun konstruktorlar ahamiyatini o‘rganish lozim.



  • C# dasturlash tilida sinf tushunchasiga dastlabki dastur tuzilgandayoq duch kelinadi. Odatda bu Program nomi bilan avtomatik tarzda hosil bo’ladi. Demak, biz shu paytgacha biror sinf ichida dasturlar tuzib keldik. Endi esa biz sinfning asosiy xarakterlarini o’rganishni boshlaymiz.

  • Sinf biror ob’yekt formasini aniqlaydigan qolip(shablon) hisoblanadi. Sinf turli amallar bajariladigan berilganlar va boshqa turli kodlardan tashkil topadi. Berilganlar deganda maydonlar tushunilsa, kodlar deganda metodlar, konstruktorlar, destruktorlar, indeksatorlar, hodisalar, operatorlar va xossalar tushuniladi. Berilganlar va kodlar umumiy nom bilan sinf a’zolari deb yuritiladi. C# dasturlash tilida sinf va uning barcha a’zolari ruxsat modifikatorlariga ega. Ruxsat modifikatorlar dasturchiga sinf va uning a’zolaridan foydalanishga yoki foydalanishni ta’qiqlashga imkon beradi.

Download 261 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




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