Zbekiston milliy universiteti amaliy matematika va intellektual


Download 56.32 Kb.
bet4/11
Sana24.12.2022
Hajmi56.32 Kb.
#1060291
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
SHAHZOD Sinflar

Dastur natijasi:
myclass1 to'rtburchak:12
myclass2 to'rtburchak:30

Konstruktor (Sinf/Class)


Biz bilgan oddiy metodlardan tashqari sinflarda konstruktor deb nomlangan maxsus metodlar ham qo'llaniladi. Berilgan sinfning yangi ob'ekti yaratilganda konstruktorlar chaqiriladi. Konstruktorlar obyektni initsializatsiya qilish uchun xizmat qiladi.

Kelishuv bo’yicha konstruktor


Agar sinfda hech qanday konstruktor aniqlanmagan bo'lsa, u holda bu sinf uchun avtomatik ravishda kelishuv bo'yicha konstruktor yaratiladi. Bunday konstruktorning parametrlari va tanasi yo'q.
Shaxs sinfi va bitta obyektini yaratamiz:

namespace ShaKhzoD


{
class Shaxs
{
public string name; // ismi
public int age; // yoshi

public void GetInfo()


{
Console.WriteLine($"Ismi: {name} Yoshi: {age}");
}
}
class Program
{
static void Main(string[] args)
{
Shaxs Shahzod = new Shaxs();
Shahzod.GetInfo(); // Ismi: Yoshi: 0
Shahzod.name = " Shahzod ";
Shahzod.age = 22;
Shahzod.GetInfo(); // Ismi: Shahzod Yoshi: 22
Console.ReadKey();
}
}
}


Shaxs obyekti yaratish uchun new Shaxs() iboradan foydalaning. new operatori Shaxs obyekti uchun xotira ajratadi. Va keyin hech qanday parametrlarga ega bo’lmagan kelishuv bo’yicha konstruktor chaqiriladi. Natijada, ushbu ifoda bajarilgandan so'ng, Shaxs obyektining barcha ma'lumotlarini saqlash uchun joy ajratiladi. Shahzod o'zgaruvchisi yaratilgan obyekt “havola”ga ega bo’ladi. 
Agar konstruktor obyekt o'zgaruvchilar qiymatlarini initsializatsiya qilmasa, u holda ular kelishuv bo’yicha qiymatlarga ega bo’ladi. Ya’ni, sonli turdagi o'zgaruvchilar 0 qiymatiga, satrlar va sinflar uchun esa bu null qiymatiga (ya'ni hech qanday qiymatga ega emas) teng.
Obyektni yaratgandan so'ng biz Shahzod o'zgaruvchisi orqali Shaxs ob'ektining o'zgaruvchilariga murojaat qilishimiz va ularning qiymatlarini o'rnatishimiz yoki olishimiz mumkin, masalan, Shahzod.name = “Shahzod”;.
Ushbu dastur natijasi konsolda:

Ismi: Yoshi: 0


Ismi : Shahzod
Yoshi: 22


Konstruktorni yaratish
Yuqorida, obyektni initsializatsiya qilish uchun kelishuv bo’yicha konstruktor ishlatilgan. Biroq, biz o'z konstruktorlarimizni o'zimiz aniqlashimiz mumkin:

class Shaxs


{
public string name;
public int age;
public Shaxs()
{
name = "Bilmayman"; age = 22;
} //1-konstruktor
public Shaxs(string n) { name = n; age = 18; } //2-konstruktor
public Shaxs(string n, int a) { name = n; age = a; } // 3-konstruktor
public void GetInfo()
{
Console.WriteLine($"Ismi: {name} Yoshi: {age}");
}
}


Endi sinf uchta konstruktorni aniqlaymiz, ularning har biri har xil parametrlarni qabul qiladi va sinf maydonlarining qiymatlarini belgilaydi. Biz ushbu konstruktorlardan foydalanamiz:

static void Main(string[] args)


{
{
Shaxs Shahzod = new Shaxs(); // 1-parametrsiz konstruktorni chaqirish
Shaxs azamat = new Shaxs("Azamat"); // 2-bitta parametrli konstruktorni chaqirish
Shaxs jasur = new Shaxs("Jasur", 25); // 3-ikkita parametrli konstruktorni chaqirish 

jasur.GetInfo(); // Ismi: Jasur Yoshi: 25


Shahzod.GetInfo(); // Ismi: Bilmayman Yoshi: 22
azamat.GetInfo(); // Ismi: Azamat Yoshi: 18
Console.ReadKey();
}
}


Ushbu dasturning konsolga chiqishi:

Ismi: Jasur Yoshi: 25


Ismi: Bilmayman Yoshi: 22
Ismi: Azamat Yoshi: 18


Agar sinfda konstruktorlar aniqlangan bo'lsa, unda obyekt yaratishda ushbu konstruktorlardan biri ishlatilishi kerak.



Download 56.32 Kb.

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




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling