Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
285
Cat turning someCat o‘zgaruvchilarini biz Cat klassining
endigina yaratilgan namuna
sifatida belgilaganmiz. To‘planganda qolib ketgan someCat o‘zgaruvchilari va uning qiymati
(Cat klassining namunasi ) boshqariligan to‘plamda qolib ketadi.
Parametrlarni olish bilan ob’ektlarni yaratish
Hozir yuqorida parametrsiz klass yaratishning misoli yendi
parametrlar bilan klassni
yaratishning misolini ko‘ramiz
Cat someCat =
new
Cat(
"Johnny"
,
"brown"
);
S# sinfini turi bilan tanishish
.NET platformasiga tegishli bo‘lsa, u xolda yanada fundamental
dastur konstruksiyasi
sifatida sinf turi xisoblanadi. Formal sinf bu foydalanuvchi tomonidan aniqlanadigan tur. U
berilganlarni maydonidan va holatidan tashkil topgan. Berilganlar maydonining sinfini barchasi
birga sinf nusxalarini “Holatini” tasvirlaydi. Ob’ektga yo‘naltirilgan dasturlash tillari S# ga
o‘xshash berilganlarni guruxlash xususiyatidan tashkil topgan va shu
bilan sinfni aniqlashdagi
funksionallik bilan bog‘liq, bu esa real xayot asosida dasturiy ta’minotni madellashtirish imkonini
beradi.
Boshlanishida yangi S# Console Application yaratamiz uni SimpleClassExample. Next
ataymiz. Keyin loyihaga yangi sinflar faylini (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.
S# da sinfni aniqlash class yordamchi kalit so‘z yordamida amalga oshiriladi. Oddiy mavjud
sinflarni e’lon qilish keyingi ko‘rinishda bo‘ladi.
class
Car
{
}
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
yechishingiz 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.
class
Car
{
// The 'state' of the Car.
public
string
petName;
public
int
currSpeed;
}
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
286
5.1 rasm. S# 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, loyhalashtirishdagi
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
class
Car
{
// The 'state' of the Car.
public
string
petName;
public
int
currSpeed;
// The functionality of the Car.
public
void
PrintState()
{
Console
.WriteLine(
"{0} is going {1} MPH."
, petName, currSpeed);
}
public
void
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:
static
void
Main(
string
[] args)
{
Console.WriteLine(
"***** Fun with Class Types *****\n"
);
// Allocate and configure a Car object.
Car myCar =
new
Car();
myCar.petName =
"Henry"
;
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
287
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.