C# kirish modifikatorlari
Kirish modifikatorlari
Hozirga kelib ko‘plab misollarimizda uchraydigan public kalit so‘zi bilan ancha tanish bo‘lib qoldingiz:
public string color;
public kalit so‘zi kirish modifikatori bo‘lib, sinflar, maydonlar, metodlar va xususiyatlar uchun kirish darajasini/ko‘rinuvchanligini belgilashda ishlatiladi.
C# da quyidagi kirish modifikatorlari mavjud:
| Modifikator | Tavsif |
|---|---|
public |
Kod barcha sinflar uchun ochiq |
private |
Kodga faqat shu sinf ichida murojaat qilish mumkin |
protected |
Kodga shu sinf ichida yoki shu sinfdan meros olgan sinfda murojaat qilish mumkin. Vorislik haqida keyingi boblarda batafsil bilib olasiz |
internal |
Kodga faqat o‘z yig‘masi (assembly) ichida murojaat qilish mumkin, boshqa yig‘madan esa mumkin emas. Bu haqda keyingi boblarda batafsil bilib olasiz |
Shuningdek, ikkita birikma ham mavjud: protected internal va private protected.
Hozircha public va private modifikatorlariga e’tibor qaratamiz.
private modifikatori
Agar maydonni private kirish modifikatori bilan e’lon qilsangiz, unga faqat shu sinf ichida murojaat qilish mumkin:
Misol
class Car{private string model = "Mustang"; static void Main(string[] args){Car myObj = new Car(); Console.WriteLine(myObj.model);}}
Natija quyidagicha bo‘ladi:
Mustang
Agar unga sinfdan tashqarida murojaat qilishga urinsangiz, xato yuz beradi:
Misol
class Car
{
private string model = "Mustang";
}
class Program
{
static void Main(string[] args)
{
Car myObj = new Car();
Console.WriteLine(myObj.model);
}
}
Natija quyidagicha bo‘ladi:
'Car.model' is inaccessible due to its protection level
The field 'Car.model' is assigned but its value is never used
public modifikatori
Agar maydonni public kirish modifikatori bilan e’lon qilsangiz, u barcha sinflar uchun ochiq bo‘ladi:
Misol
class Car
{
public string model = "Mustang";
}
class Program
{
static void Main(string[] args)
{
Car myObj = new Car();
Console.WriteLine(myObj.model);
}
}
Natija quyidagicha bo‘ladi:
Mustang
Nega kirish modifikatorlari kerak?
Sinf a’zolarining ko‘rinuvchanligini (har bir alohida sinf va sinf a’zosining xavfsizlik darajasini) boshqarish uchun.
"Inkapsulyatsiya"ga erishish uchun — bu "maxfiy" ma’lumotlarning foydalanuvchilardan yashirilishini ta’minlash jarayoni. Bunga maydonlarni private deb e’lon qilish orqali erishiladi. Bu haqda keyingi bobda batafsil bilib olasiz.
Eslatma: Agar kirish modifikatorini ko‘rsatmasangiz, sinfning barcha a’zolari sukut bo‘yicha private bo‘ladi:
Misol
class Car
{
string model; // private
string year; // private
}
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
