Obyekt va sinflar — OOP ning amaliy poydevori. OOP darsida ular bilan qisqacha tanishdik; endi sinf tuzilishini, uning a’zolarini va obyekt yaratish jarayonini batafsil ko’rib chiqamiz. Sinfni yaxshi tushunsangiz, keyingi barcha OOP tushunchalari osonlashadi.
Sinf (class) — obyektlar yaratish uchun andoza. U obyektning maydonlarini (ma’lumot) va metodlarini (xatti-harakat) bir joyda ta’riflaydi. Obyekt — shu andozadan
newbilan yaratilgan nusxa.
Sinf tuzilishi
Sinf ichida maydonlar va metodlar bo’ladi. Mahsulot sinfini quramiz:
using System;
class Mahsulot
{
public string Nomi;
public int Narxi;
public void Korsat()
{
Console.WriteLine($"{Nomi} — {Narxi} so'm");
}
}
Mahsulot telefon = new Mahsulot();
telefon.Nomi = "iPhone";
telefon.Narxi = 12000000;
telefon.Korsat();
iPhone — 12000000 so'm
Bu yerda Nomi va Narxi — maydonlar, Korsat() — metod. Metod obyektning o’z maydonlariga bevosita murojaat qila oladi.
Xususiyatlar (Properties)
C#’ning o’ziga xos imkoniyati — xususiyatlar (properties). Ular maydonga nazorat qilinadigan kirish beradi:
using System;
class Talaba
{
public string Ism { get; set; }
public int Ball { get; set; }
}
Talaba t = new Talaba();
t.Ism = "Farrux";
t.Ball = 95;
Console.WriteLine($"{t.Ism}: {t.Ball}");
Farrux: 95
{ get; set; } — bu avto-xususiyat (auto-property). U maydonga o’qish (get) va yozish (set) imkonini beradi, ammo kelajakda tekshiruv qo’shish uchun asos yaratadi. Bu C#’da maydonlar o’rniga keng ishlatiladi.
Maydonlarning standart qiymati
C#’da obyekt maydonlari qiymat berilmasa, standart qiymatga ega bo’ladi:
| Tur | Standart qiymat |
|---|---|
int, double |
0 |
bool |
false |
string, obyekt |
null |
Bir sinf — ko’p obyekt
Bitta andozadan mustaqil obyektlar yaratsa bo’ladi:
using System;
class Talaba { public string Ism { get; set; } }
Talaba a = new Talaba { Ism = "Farrux" };
Talaba b = new Talaba { Ism = "Aziz" };
Console.WriteLine(a.Ism);
Console.WriteLine(b.Ism);
Farrux
Aziz
E’tibor bering: new Talaba { Ism = "Farrux" } — obyektni yaratishning o’zidayoq maydonini to’ldirish (object initializer). Bu C#’ning qulay imkoniyati.
Xulosa
Bu bo’limda sinf tuzilishi, new bilan obyekt yaratish, xususiyatlar (get; set;), standart qiymatlar va object initializer’ni ko’rib chiqdik. Sinf — ma’lumot va xatti-harakatni jamlovchi birlik. Keyingi darsda metodlarga chuqurroq kirib boramiz.