2-Amaliy ish mavzu: Turli berilgan dasturiy vositalar uchun talablarni shakllantirish Bajardi : Mirfayozov X. Tekshirdi : Tursunov O


Download 12.1 Kb.
Sana09.04.2023
Hajmi12.1 Kb.
#1343067
Bog'liq
2-amaliy ish


O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI.

2-Amaliy ish

MAVZU: Turli berilgan dasturiy vositalar uchun talablarni shakllantirish

Bajardi : Mirfayozov X.
Tekshirdi : Tursunov O.


Toshkent-2022
2-Amaliy ish.
Turli berilgan dasturiy vositalar uchun talablarni shakllantirish.
C# dasturlash tili misolida
Barcha maydonlar, usullar va boshqa sinf komponentlari kirish modifikatorlariga ega. Kirish modifikatorlari sinf komponentlari uchun ruxsat etilgan doirani o'rnatish imkonini beradi. Ya'ni, kirish modifikatorlari berilgan o'zgaruvchi yoki usuldan foydalanish mumkin bo'lgan kontekstni belgilaydi.

Quyidagi kirish modifikatorlari C# da qo'llaniladi:



  • private: sinf yoki strukturaning shaxsiy yoki shaxsiy komponenti. Shaxsiy loviya faqat o'z sinfi yoki strukturasida mavjud.



  • private protected: Sinf komponentiga o'z sinfidagi istalgan joydan yoki bir xil assambleyada aniqlangan hosila sinflardan kirish mumkin.



  • file: C# 11 da qo'shilgan va sinflar va tuzilmalar kabi turlarga qo'llaniladi. Ushbu modifikatorga ega sinf yoki tuzilmaga faqat joriy kod faylidan kirish mumkin.



  • protected: Bunday sinf komponentiga o'z sinfidagi yoki olingan sinflarning istalgan joyidan kirish mumkin. Bunday holda, olingan sinflar boshqa yig'ilishlarda joylashgan bo'lishi mumkin.



  • internal: Sinf yoki tuzilmaning komponentiga bitta assambleyadagi kodning istalgan joyidan kirish mumkin, lekin boshqa dastur va yig'ilishlar uchun mavjud emas.



  • protected internal: himoyalangan va ichki ikkita modifikatorning funksionalligini birlashtiradi. Bunday sinf komponentiga joriy yig'ilishning istalgan joyidan va boshqa yig'ilishlarda joylashishi mumkin bo'lgan hosila sinflardan foydalanish mumkin.



  • public: sinf yoki strukturaning ommaviy, ommaviy komponenti. Bunday komponentga kodning istalgan joyidan, shuningdek, boshqa dasturlar va yig'ilishlardan kirish mumkin.

Shuni ta'kidlash kerakki, bu modifikatorlar sinf a'zolariga ham, struktura a'zolariga ham qo'llanilishi mumkin, bundan mustasno, strukturalar xususiy himoyalangan, himoyalangan va himoyalangan ichki modifikatorlardan foydalana olmaydi, chunki strukturalar meros qilib olinmaydi.


To'g'ridan-to'g'ri boshqa turlardan (sinflar va tuzilmalar) tashqarida aniqlangan barcha sinflar va tuzilmalar faqat umumiy, fayl yoki ichki modifikatorlarga ega bo'lishi mumkin.
Biz kirish modifikatorini aniq belgilashimiz mumkin yoki uni aniqlay olmaymiz:

public class Person


{
string name;
public Person(string name)
{
this.name = name;
}
public void Print() => Console.WriteLine($"Name: {name}");
}

Agar komponentlar uchun kirish modifikatori aniqlanmagan bo'lsa, u holda shaxsiy modifikator sukut bo'yicha qo'llaniladi. Masalan, yuqoridagi misolda nom o'zgaruvchisi bilvosita xususiy modifikatorga ega bo'ladi.


Modifikatorsiz e'lon qilingan va boshqa turlardan tashqarida joylashgan sinflar va tuzilmalar sukut bo'yicha ichki kirishga ega va sinflar/tuzilmalarning boshqa komponentlari kabi ichki o'rnatilgan sinflar va tuzilmalar shaxsiy modifikatorga ega. Masalan:

class Phone


{
struct Camera
{
}
}

Bu erda Telefon klassi boshqa sinf/strukturada joylashmagan, shuning uchun u ichki modifikatorga ega. Va Kamera tuzilishi ichki o'rnatilgan, shuning uchun sinfning boshqa komponentlari singari, u bilvosita shaxsiy modifikatorga ega.

Joriy loyiha ichidagi modifikatorlar
Keling, misolni ko'rib chiqamiz va quyidagi Davlat sinfini yaratamiz:

class State


{
string defaultVar ="default";
private string privateVar = "private";
protected private string protectedPrivateVar = "protected private";
protected string protectedVar = "protected";
internal string internalVar = "internal";
protected internal string protectedInternalVar = "protected internal";
public string publicVar = "public";
void Print() => Console.WriteLine(defaultVar);
private void PrintPrivate() => Console.WriteLine(privateVar);
protected private void PrintProtectedPrivate() => Console.WriteLine(protectedPrivateVar);
protected void PrintProtected() => Console.WriteLine(protectedVar);
internal void PrintInternal() => Console.WriteLine(internalVar);
protected internal void PrintProtectedInternal() => Console.WriteLine(protectedInternalVar);
public void PrintPublic() => Console.WriteLine(publicVar);
}

Davlat klassida aniq modifikator yo'qligi sababli, u ichki modifikatorga sukut bo'yicha o'rnatiladi, shuning uchun unga loyihaning istalgan joyidan kirish mumkin bo'ladi, lekin boshqa dasturlar yoki yig'ilishlardan emas.

Davlat sinfida har bir kirish darajasi uchun oltita maydon mavjud. Bundan tashqari, sukut bo'yicha shaxsiy bo'lgan bitta o'zgartirilmagan o'zgaruvchi. Shuningdek, konsolda mos keladigan o'zgaruvchilarning qiymatlarini aks ettiruvchi turli xil modifikatorlarga ega ettita usul aniqlangan. Barcha modifikatorlar ushbu sinf ichida sinf komponentlaridan foydalanishga imkon berganligi sababli, barcha sinf o'zgaruvchilari, shu jumladan xususiylar ham uning barcha usullarida mavjud bo'ladi, chunki ularning barchasi Davlat klassi kontekstida.

Endi, masalan, StateConsumer deb ataladigan va xuddi shu loyihada joylashgan boshqa sinfda State klassining o'zgaruvchilaridan qanday foydalanish mumkinligini ko'rib chiqamiz:



class StateConsumer
{
public void PrintState()
{
State state = new State();
Console.WriteLine(state.defaultVar);
Console.WriteLine(state.privateVar);
Console.WriteLine(state.protectedPrivateVar);
Console.WriteLine(state.protectedVar);
Console.WriteLine(state.internalVar);
Console.WriteLine(state.protectedInternalVar);
Console.WriteLine(state.publicVar);
}
}
Download 12.1 Kb.

Do'stlaringiz bilan baham:




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