Mavzu: ichma-ich joylashgan sinflar


Statik bo'lmagan sinfda statik o'rnatilgan sinfni e'lon qilish va ishlatish


Download 99.85 Kb.
bet3/6
Sana18.06.2023
Hajmi99.85 Kb.
#1577834
1   2   3   4   5   6
Bog'liq
ICHMA-ICH JOYLASHGAN SINFLAR.

3. Statik bo'lmagan sinfda statik o'rnatilgan sinfni e'lon qilish va ishlatish.
Statik bo'lmagan sinfda statik sinf e'lon qilinishi mumkin (static kalit so'zi bilan). Bu shuni anglatadiki, ushbu sinfning statik sinfi noyob umumiy resursdir. Statik sinf a'zolariga to'g'ridan-to'g'ri statik sinf nomi orqali kirish mumkin, undan oldin nuqta qo'yiladi va undan keyin tashqi sinf(lar) nomi(lar)i qo'yiladi.
Misol. Outer sinfi e'lon qilinadi, u o'rnatilgan statik (static) Inner sinfining e’lon qilishini o'z ichiga oladi. Ichki sinf public statik ichki o'zgaruvchini e'lon qiladi. Outer sinfining matni quyidagicha:
// Outer sinfi statik emas
public class Outer
{
// Outer sinfining ichki o'zgaruvchilari
public int d;
static public int sd;
// statik ichki sinf Inner.
public static class Inner
{
// statik sinfda faqat statik o'zgaruvchilar e'lon qilinishi mumkin.
public static int sd; // statik ichki sinf o'zgaruvchilari Inner.
}
}

Statik ichki sinfdan foydalanish shunday bo'lishi mumkin:


// Outer.Inner statik sinfining statik o'zgaruvchisiga kirish
Outer.Inner.sd = 45;
// Outer sinfining ob'ektini (namunasi) yaratish.
Outer o = new Outer();
o.d = 30; // ob'ekt orqali sinf namunasi o'zgaruvchilariga kirish imkoniyati mavjud.
Outer.sd = 102; // Ou_ter statik sinf o'zgaruvchisiga kirish.
// Statik sinf ob'ektini yaratib bo`lmaydi.
//Outer.Inner i = new Outer.Inner(); - Bu xato!


Statik sinfda statik bo'lmagan ichki sinfni e'lon qilish mumkinmi?.
Ha mumkin. Statik sinf statik bo'lmagan ichki o'rnatilgan sinflarni e'lon qilishi mumkin. Biroq, statik bo'lmagan o'zgaruvchilar va usullarni statik sinfda e'lon qilib bo'lmaydi.
Mavzuda statik o'zgaruvchilar, usullar, sinflardan foydalanish haqida batafsil ma'lumot berilgan:
Statik sinflar, usullar, o'zgaruvchilar. Statik konstruktorlar. static kalit so'zi.
Masalan. Outer statik sinfi e'lon qilinsin, unda statik bo'lmagan Inner sinfining amalga oshirilishi mavjud.
// Outer sinfi statikdir
public static class Outer
{
// Outer sinfining ichki o'zgaruvchilari
// statik sinfda faqat statik misollar e'lon qilinishi mumkin
// public int d; - xato!
static public int sd;
// statik bo'lmagan ichki sinf Inner statik sinfda e'lon qilinishi mumkin
public class Inner
{
public int d; // statik bo'lmagan o'zgaruvchi
public static int sd; // Inner statik ichki sinf o'zgaruvchisi.
}
}

Outer va Outer.Inner sinflaridan foydalanish, masalan:


// statik sinfda statik bo'lmagan sinfdan foydalanish
// Outer.Inner sinfining sd statik o'zgaruvchisiga kirish
Outer.Inner.sd = 230;
// Outer sinfining sd statik o'zgaruvchisiga kirish
Outer.sd = 132;
// Statik sinfning namunasini (obyektini) yaratib bo`lmaydi
// Outer o = new Outer(); // xato, chunki Outer statik sinfdir
// ichki o'rnatilgan sinfni Outer.Inner yaratish
Outer.Inner i = new Outer.Inner();
і.d = 323; // Outer.Inner sinfining statik bo'lmagan d o'zgaruvchisiga kirish



Download 99.85 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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