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


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

class MyClass {
// Nonsatik metod
void NonStaticMeth() {
Console.WriteLine("В методе NonStaticMeth().");
}
/* static metod nostatik metodga ob'ektga havola orqali murojaat qilishi mumkin. */
public static void staticMeth(MyClass ob) {
ob.NonStaticMeth(); // все верно!
}
}
Ushbu misolda NonStaticMeth() metodi MyClass tipidagi ob obektiga havola orqali Staticmeth() metodidan chaqirilyapti.
static tipidagi maydonlar muayyan ob'ektga bog'liq bo`lmaganligi uchun ular butun sinfga tegishli ma'lumotlarni saqlash uchun qulaydir. Quyida shunga o'xshash vaziyatni ko'rsatadigan dasturning namunasi keltirilgan. Ushbu dasturdagi static turili maydon mavjud ob'ektlar sonini saqlashga xizmat qiladi.
// Mavjud ob'ektlarning nusxalari sonini
//hisoblashda static turi maydonidan foydalanish.
using System;
class CountInst {
static int count = 0;
// Ob'ekt yaratilganda hisoblashni oshirish.
public CountInst() {
count++;
}
// Ob'ektni yo'q qilish vaqtida hisoblashni bekor qilish.
~CountInst() {
Count--;
}
public static int GetCount() {
return count;
}
}
class CountDemo {
static void Main() {
CountInst ob;
for(int i=0; i < 10; i++) {
ob = new CountInst ();
Console.WriteLine("Текущий подсчет: " + CountInst.GetCount()) ;
}
}
}
Ushbu dasturning bajarilishidan quyidagi natijalar olinadi.
Текущий подсчет: 1
Текущий подсчет: 2
Текущий подсчет: 3
Текущий подсчет: 4
Текущий подсчет: 5
Текущий подсчет: б
Текущий подсчет: 7
Текущий подсчет: 8
Текущий подсчет: 9
Текущий подсчет: 10
CountInst tipidagi ob'ekt yaratilganda, static turili count maydoni ortadi. Lekin qachon bunday ob'ekt o`chirilsa, count maydon yuklanadi. Shuning uchuncount maydoni har doim mavjud bo'lgan ob'ektlar sonini o'z ichiga oladi. Va bu faqat static turdagi maydondan foydalanish orqali amalga oshiriladi. Shu kabi hisob-kitoblarni nusxa o`zgaruvchisi yordamida tashkil etish mumkin emas, chunki u butun sinfga tegishli bo'lib, bu sinfning muayyan ob'ekti nusxasiga tegishli emas.
Quyida sinfning static a'zolarini qo'llashning yana bir misoli keltirilgan. Ushbu bo'limda ilgari fabrika sinfi yordanida qanday qilib ob`ekt yaratilishini ko'rsatdi. Ushbu misolda fabrika static metod emas edi, ya'ni fabrika metodi faqat oldindan yaratilgan ob'ektga havola orqali chaqirilishi mumkin edi. Lekin sinfning keraksiz ob'ektini yaratmagan holda fabrika metodini chaqirish imkonini beradigan static turili metod sifatida amalga oshirish yaxshiroq hisoblanadi. Bu takomillashtirish va sinfda fabrikani amalga oshirish dasturi quyidagi tahrirlangan misolda aks etadi
//Sinfda statik fabrikadan foydalanish.
using System;
class MyClass {

Download 111.72 Kb.

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




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