C#. Ichma-ich joylashgan sinflar. Qo‘yilgan statik sinflar. IchMa-ich joylashgan sinflarni e’lon qilish va ulardan foydalanish misollar


Ichma-ich joylashgan sinflarga qanday foydalanish modifikatorlari qo‘llanilishi mumkin?



Download 21,76 Kb.
bet2/3
Sana14.06.2022
Hajmi21,76 Kb.
#666897
1   2   3
Bog'liq
C# ichma-ich joylashgan sinflar

3. Ichma-ich joylashgan sinflarga qanday foydalanish modifikatorlari qo‘llanilishi mumkin?
Ichma-ich joylashgan sinflarga modifikatorlar oddiy sinflarga o‘xshash qo‘llanilishi mumkin:

private. Bunday holatda ichma-ich joylashgan sinf tashqi sinifning{} chegarasi doirasida ko‘rinadi;


public. Bunday holda ichma-ich joylashgan sinf tashqi sinf chegarasida, tashqi sinf nusxasining hosilaviy sinfda, shuningdek, to‘plam tashqarisida foydalanilishi mumkin.
protected. Bunday holatda ichma-ich joylashgan sinf tashqi sinf doirasida, shuningdek, hosilaviy bo‘lgan sinflar usullarida foydalanishi mumkin;
internal. ichma-ich joylashgan sinf to‘plam doirasida foydalanishi mumkin va yig to‘plam ish chegarasidan tashqarida foydalanishi mumkin emas;
protected internal. ichma-ich joylashgan sinf tashqi sinf usullaridan, muras bo‘lgan sinflar usullaridan foydalanish mumkin bo‘lishi yoki joriy to‘plam tashqarisidagi usullardan foydalanish mumkin emas.
Modifikatorlarning foydalanishi sinf a’zolari (usullari) dagi kabi amalga oshiriladi.
4. Turli foydalanish modifikatorlariga ega sinflardan foydalanishni ko‘rsatish uchun misol
Misolda ichma-ich joylashgan sinflarni e’lon qilish va ulardan foydalanish ko‘rsatiladi, ularda turli foydalanish modifikatorlari ishlatiladi.
Outer sinfi e’lon qilinadi, unda quyidagilar foydalaniladi:

ikkita ichki public-o‘zgaruvchi d va sd nomli. sd o‘zgaruvchisi statik sifatida e’lon qilindi;


Inner1 private-sinfiga murojaatni namoyish etuvchi GetInner1(), ichki usuli;
private kabi e’lon qilingan ichma-ich joylashgan Inner1 sinfi;
public kabi e’lon qilingan ichma-ich joylashgan Inner2 sinfi;
internal kabi e’lon qilingan ichma-ich joylashgan Inner3 sinfi;
protected kabi e’lon qilingan ichma-ich joylashgan Inner4 sinfi;
protected internal. kabi e’lon qilingan ichma-ich joylashgan Inner5 sinfi.
Ichma-ich joylashgan har bir sinfda quyidagilar e’lon qilinadi:

butun turdagi bir nostatik o‘zgaruvchi;


butun turdagi bir statik o‘zgaruvchi.
Outer sinfidagi listing quyidagicha:
//Outer sinfida 5 ta ilova qilingan sinf mavjud
public class Outer
{
//Outer sinfining ichki o‘zgaruvchilari
public int d;
static public int sd;

//private sinfga kirish sinfning ichki usulidan


public Inner1 GetInner1()
{
Inner1 i1 = new Inner1 () ;//klassning nusxasini yaratish Inner1

//klass ma’lumotlari a’zosiga sinf nusxasi orqali kirish


i1.d1 = 25;

// ichma-ich joylashgan sinfning statik a’zosiga kirish Inner1


Inner1.sd1 = 30;

return i1;


}

//private – ichma-ich joylashgan sinf Inner1


private class Inner1
{
public int d1;
public static int sd1;
}

//public - ilova qilingan klass Inner2


public class Inner2
{
public int d2;
public static int sd2;
}

//internal-ilova sinfi Inner3


internal class Inner3
{
public int d3;
public static int sd3;
}

//protected – qo‘yilgan sinf Inner4


protected class Inner4
{
public int d4;
public static int sd4;
}

//protected-internal Inner5


protected internal class Inner5
{
public int d5;
public static int sd5;
}
}
Qo‘yilgan sinflardan ayrim usulda foydalanish quyidagilar bo‘lishi mumkin:
//Qo‘yilgan sinflardan foydalanish
// 1. Outer klassidagi ob’ektni e’lon qilish
Outer o = new Outer();
o.d = 300 ;//ichki o‘zgaruvchiga Outer sinfining nusxasi orqali kirish
Outer.sd = 230 ;//statik o‘zgaruvchiga kirish

// 2. Inner1 ichma-ich joylashgan sinfga Outer sinfi nusxasi orqali murojaat //qilib bo‘lmaydi


// Outer. i1; - xato, sinf private sifatida e’lon qilindi

// 3. Inner2 public-sinf ob’ektini e’lon qilish


Outer.Inner2 i2 = new Outer.Inner2();
i2.d2 = 440;
Outer.Inner2.sd2 = 500 ;//statik o‘zgaruvchiga kirish

// 4. Inner3 Internal-sinf ob’ektini e’lon qilish


Outer.Inner3 i3 = new Outer.Inner3();
i3.d3 = 100;
Outer.Inner3.sd3 = 400 ;//statik o‘zgaruvchiga kirish

// 5. Mavjud imkoniyatni faqat muras bo‘lgan sinfdan e’lon qilish mumkin


// Outer.Inner4 i4; - xato

// 6. protested-internal-klass ob’ektini e’lon qilish mumkin


Outer.Inner5 i5 = new Outer.Inner5();
i5.d5 = 200;
Outer.Inner5.sd5 = -100;
Yuqorida keltirilgan koddan ko‘rsatilganki, faqat Inner2, Inner3, Inner5 sinflari uchun ob’ektlarni yaratish mumkin. Inner4 sinfini yaratish uchun Outer sinfini muras qiladigan boshqa sinfni e’lon qilish lozim:
//sinf Outer2 Outer sinfidan meros boʻlgan
class Outer2 : Outer
{
//meros etilgan sinf usulida protected-sinfga kirish imkoniyati mavjud Inner4
void SomeMethod()
{
//sinf nusxasini yaratish Outer.Inner4
Inner4 i4 = new Inner4 () ;//ishlaydi
i4.d4 = 23 ;//sinf nusxasi orqali foydalanish
Inner4.sd4 = 330 ;//statik o‘zgaruvchiga murojaat
}
}
Ushbu misol shuningdek, qo‘yilgan private-klass unda e’lon qilingan statik o‘zgaruvchiga boshqa sinflar usullaridan foydalanishni yashiradi. Shuningdek, ilova qilingan protected-sinfi ham kirishni yashiradi.
5. Statik qo‘yilgan sinfni nostatik darajada e’lon qilish va ulardan foydalanish. Misol
Statik bo‘lmagan sinfda statik sinf e’lon qilinishi mumkin (statik asosiy so‘z bilan). Bu – mazkur sinfning statik sinfi o‘ziga xos umumiy resurs ekanini bildiradi. Statik sinf elementlariga kirish bevosita statik sinf nomi bilan amalga oshiriladi.
Misol. Ixtisoslashtirilgan statik (statik) sinfning e’lon qilingan Outer sinfi e’lon qilinadi. Inner sinfida statik ichki public oʻzgaruvchanlik eʼlon qilinadi. Outer sinfi matni quyidagilar:
//sinf Outer — nostatik
public class Outer
{
//Outer sinfining ichki o‘zgaruvchilari
public int d;
static public int sd;

//statik ilova qilingan sinf Inner


public static class Inner
{
//faqat statik o‘zgaruvchilar statik sinfda e’lon qilinishi mumkin
public static int sd ;//Inner sinfining statik ichki o‘zgaruvchisi
}
}
Statik qo‘yilgan sinfdan foydalanish shunday bo‘lishi mumkin:

//Outer.Inner


Outer.Inner.sd = 45;

//Outer klassidagi ob’ektni (nusxani) yaratish


Outer o = new Outer();
o.d = 30 ;//ob’ekt orqali sinf nusxasining o‘zgaruvchilaridan foydalanish mumkin
Outer.sd = 102 ;//Outer klassidagi statik o‘zgaruvchiga kirish

//statik klass ob’ektini yaratib bo‘lmadi


//Outer.Inner i = new Outer.Inner(); – bu xato!
6. Statik sinfda nostatik qo‘yilgan sinfni e’lon qilish mumkinmi?
Bunday bo‘lishi mumkin. Statik sinfda statik bo‘lmagan qo‘shimcha sinflarni e’lon qilish mumkin. Biroq, statik sinfda nostatik o‘zgarishlar va usullarni e’lon qilish mumkin emas.
Statik o‘zgaruvchilar, usullar, sinflardan foydalanish to‘g‘risida quyidagi mavzularda batafsil tasvirlanadi:
Statik sinflar, usullar, o‘zgaruvchilar. Statik konstruktorlar. Kalit so‘zi statik
Masalan. Statik bo‘lmagan Inner sinfini amalga oshirishni o‘z ichiga olgan Outer statik sinfi e’lon qilinsin

//sinf Outer – statik


public static class Outer
{
//Outer sinfining ichki o‘zgaruvchilari
//faqat statik nusxalarni statik sinfda e’lon qilish mumkin
// public int d; - xato!
static public int sd;

//statik bo‘lmagan Inner sinfi - statik sinfda e’lon qilinishi mumkin


public class Inner
{
public int d ;//nostatik o‘zgaruvchi
public static int sd ;//Inner sinfining statik ichki o‘zgaruvchisi
}
}
Outer va Outer.Inner sinflaridan foydalanish, masalan, quyidagilar bo‘lishi mumkin:

//statik sinfdan foydalanish


//Outer.Inner sd klassidagi statik o‘zgaruvchiga kirish
Outer.Inner.sd = 230;

//Outer klassidagi sd statik o‘zgaruvchiga kirish


Outer.sd = 132;

//Statik sinfning nusxasini (ob’ektini) yaratib bo‘lmadi


//Outer o = New Outer () ;//xato, chunki Outer – statik sinf

//kiritilgan Outer.Inner sinfining nusxasini yaratish


Outer.Inner i = new Outer.Inner();
i.d = 323 ;//Outer.Inner

Download 21,76 Kb.

Do'stlaringiz bilan baham:
1   2   3




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish