1-Mavzu 1-Mavzu Reja: Klass a’zolariga ruxsatni boshqarish


Download 111.72 Kb.
bet48/96
Sana29.03.2023
Hajmi111.72 Kb.
#1307438
1   ...   44   45   46   47   48   49   50   51   ...   96
Bog'liq
1-Mavzu 1-Mavzu Reja Klass a’zolariga ruxsatni boshqarish

Shu kabi cheklovlar static ma'lumotlarga ham qo'llaniladi. static turili metodlarga faqat o'z sinfida aniqlangan static ma'lumotlarga to'g'ridan-to'g'ri kirish huquqi mavjud. U, xususan, o'z sinfining nusxa o`zgaruvchilarini ham ishlata olmaydi, chunki birorta ob'ektlar tarkibida mavjud emas.

Quyida sinfning static ValDivDenom() metodni qabul qila olmasligiga misol.
class StaticError {
public int Denom =3; // oddiy nusxa o'zgaruvchi
public static int Val = 1024; // static o'zgaruvchi
/* Xato! static metod static bo`lmagan o'zgaruvchini bevosita qabul qilinishi mumkin emas. */
static int ValDivDenom() {
return Val/Denom; // kompilyatsiya qilinmaydi!
}
}
Koddagi Denom oddiy o'zgaruvchi bo`1ganligi sababli, static turili metodda unga ruxsat mavjud emas. Shu bilan birga, bu metod Val o'zgaruvchisidan foydalanishi mumkin, chunki u statik deb e'lon qilingan.
Quyidagi misolda bo'lgani kabi, bir xil sinfning static metodidan satic bo`lmagan metodini chaqirishga urinishda ham shunga o'xshash xato paydo bo'ladi.
using System;
class AnotherStaticError {
// Nonsatik metod.
void NonStaticMeth() {
Console.WriteLine("В методе NonStaticMeth().");
}
/* Xato! static metod static bo`lmagan metodni bevosita chqairishi mumkin emas. */
static void staticMeth() {
NonStaticMeth(); // kompilyatsiya qilinmaydi!
}
}
Bunday holda, static metoddan nostatik metodni (masalan, nusxa metodida) chaqirishga urinish kompilyatsiya paytida xatolikka olib keladi.
Shuni ta'kidlash lozimki, static turili metodlardan nusxa metodlariga va nusxa o'zgaruvchilariga kirish mumkin emas, odatda bu holat sinf ob'ektlari orqali amalga oshiriladi. Buning sababi shundaki, muayyan ob'ektni ko'rsatmasdan, nusxa o`zgaruvchi yoki nusxa metodiga kirish uchun ruxsat yo`q. Misol uchun, quyidagi kod butunlay to'g'ri hisoblanadi.

Download 111.72 Kb.

Do'stlaringiz bilan baham:
1   ...   44   45   46   47   48   49   50   51   ...   96




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