3. Static klasslar.
Sinf static deb e'lon qilinish mumkin. static sinf ikki asosiy xususiyatga ega. Birinchidan, static sinfning ob'ektlari yaratilmaydi. Ikkinchidan, static sinf faqat static a'zolarni o'z ichiga olishi kerak. static sinf e`loni, static kalit so'zi bilan o'zgartirilgan holda quyidagi ko`rsatilgan shaklda yaratiladi
static class sinf_nomi{ // ...
Bunday sinfda barcha a'zolar static deb e'lon qilinishi kerak. Agar sinf static bo'lib qolsa, bu uning barcha a'zolari statik bo'lishini anglatmaydi.
Statik sinflar asosan ikki holatda qo'llaniladi. Birinchidan, metod yaratishni kengaytirishda static sinf talab qilinadi. Metodlarni kengayish asosan LINQ tiliga bog'liq va shuning uchun 19 bobida batafsilroq ma'lumot beriladi. Ikkinchidan, static sinf bir-biriga bog'liq static metodlarni saqlashga xizmat qiladi. Uning qo'llanilishi quyida ko'rib chiqiladi.
Quyidagi dasturda keltirilgan NumericFn sinfi son qiymatlar bilan ishlovchi static metodlar qatorini saqlash uchun xizmat qiladi. NumericFn sinfining barcha a'zolari static deb e'lon qilinganligi sababli, bu sinf ham ob'ektlarining nusxalarini olish jarayonini istisno qilish maqsadida static deb e'lon qilindi. Shunday qilib, NumericFn klassi mantiqiy jihatdan bog'liq metodlarni guruhlash uchun qulay vositalarni taqdim etishni tashkillashtiruvchi rolini bajaradi.
// static sinfdan foydalanishni namoyish etish.
using System;
static class NumericFn {
// Sonning teskari qiymatini qaytarish.
static public double Reciprocal(double num) {
return 1/num;
}
// Sonning qoldiq qismi qiymatni qaytarish.
static public double FracPart(double num) {
return num - (int) num;
}
// Agar num o'zgaruvchining qiymati juft bo'lsa, true mantiqiy qiymatni qaytarish.
static public bool IsEven(double num) {
return (num % 2) ==0 ? true : false;
}
// Agar num o'zgaruvchining qiymati toq bo'lsa, false mantiqiy qiymatni qaytarish.
static public bool IsOdd(double num) {
return !IsEven(num);
}
}
class StaticClassDemo {
static void Main() {
Console.WriteLine("Обратная величина числа 5 равна " +
NumericFn.Reciprocal(5.0));
Console.WriteLine("Дробная
Do'stlaringiz bilan baham: |