|
Kompyuter tizimlari kafedrasi
|
bet | 80/154 | Sana | 08.01.2024 | Hajmi | 5,29 Mb. | | #131939 |
Bog'liq Majmuausing System;
namespace Funksiya
{
public class Shed
{
static int Obyekt = 0;
public int GetObyekt()
{
return Obyekt;
}
public Shed()
{
Obyekt++;
}
}
}
Endi Main() metodida sinfning bir nechta obyektlarini yaratib, tekshirib ko‘rishimiz mumkin:
using System;
namespace Funksiya
{
class Program
{
public static void Main(string[] args)
{
Shed shed = new Shed();
Console.WriteLine(shed.GetObyekt());
Shed shed1 = new Shed();
Console.WriteLine(shed1.GetObyekt());
Console.ReadKey(true);
}
}
}
Sinfni ishga tushirib va birinchi obyekt yaratilgandan so‘ng, Obyekt o‘zgaruvchisining qiymati 1 ga teng bo‘ladi va ikkinchi sinf obyekti yaratilgandan so‘ng u o‘zgaruvchining qiymati 2 ga teng. Agar yana boshqa obyekt yaratilsa, o‘zgaruvchi yana bittaga ortadi.
Har bir obyekt o‘zining statik bo‘lmagan o‘zgaruvchilariga ega va bir obyektda statik bo‘lmagan maydonni o‘zgartirish boshqa obyektlarga ta’sir qilmaydi. Statik maydon(o‘zgaruvchi) har doim hamma uchun bir xil bo‘ladi.
Statik o‘zgaruvchilarni qanday ishga tushirish mumkin? Buni oddiy konstruktorda amalga oshirish mumkin, lekin keyin sinfning istalgan obyekti yaratilganda oʻzgaruvchi qayta oʻrnatiladi. Konstruktorda qandaydir tekshirishni amalga oshirish mumkin.
Eng yaxshi metod - oddiy konstruktor kabi sinf nomi bilan bir xil, lekin static kalit so‘zi bilan e’lon qilingan statik konstruktordan foydalanish:
static Shed()
{
Obyekt++;
}
Ushbu konstruktor quyidagi xususiyatlarga ega:
sinfda yaratilgan obyektlar sonidan qat’iy nazar, faqat bir marta bajariladi;
u parametrlarga ega bo‘lishi mumkin emas, ya’ni uni qayta yuklash mumkin emas, bir nechta konstruktor yaratish mumkin bo‘lmaydi va u faqat yuqorida aytib o‘tilganidek bajariladi;
konstruktorda kirish modifikatorlari yo‘q, chunki u tashqaridan chaqirilmaydi, u sinfda birinchi obyekt yaratilganda yoki statik sinf a’zosiga birinchi marta kirishda avtomatik ravishda chaqiriladi.
Butun statik sinflarni ham yaratish mumkin. Agar sinf statik deb e’lon qilingan bo‘lsa, u faqat statik o‘zgaruvchilar va metodlarni o‘z ichiga olishi mumkin:
|
| |