Axborot tizimlari va texnologiyalari yo`nalishi 1-kurs kechki ta’lim talabalariga


Statik xususiyatlar va usullar[1,2]


Download 58.06 Kb.
bet2/4
Sana04.02.2023
Hajmi58.06 Kb.
#1159903
1   2   3   4
Bog'liq
4 maruza mashg`uloti ishlanmasi

Statik xususiyatlar va usullar[1,2]. Xuddi shunday, biz statik usullar va xususiyatlarni yaratishimiz va ishlatishimiz mumkin:
class Account
{
public Account(decimal sum, decimal rate)
{
if (sum < MinSum) throw new Exception("Noto'g'ri miqdor!");
Sum = sum; Rate = rate;
}
private static decimal minSum = 100; // barcha hisoblar uchun ruxsat etilgan minimal miqdor
public static decimal MinSum
{
get { return minSum; }
set { if(value>0) minSum = value; }
}
public decimal Sum { get; private set; } // hisobdagi summa
public decimal Rate { get; private set; } // Stavka foizi
// hisobdagi summani ma'lum muddatdan keyin ma'lum tezlikda hisoblash
public static decimal GetSum(decimal sum, decimal rate, int period)
{
decimal result = sum;
for (int i = 1; i <= period; i++)
result = result + result * rate / 100;
return result;
}
}

minSum o'zgaruvchisi, MinSum xususiyati va GetSum usuli bu erda static kalit so'zi bilan aniqlangan, ya'ni ular statik.


minSum o'zgaruvchisi va MinSum xususiyati schyot -fakturani tuzishga ruxsat berilgan minimal miqdorni bildiradi. Bu indikator hech qanday alohida hisobni nazarda tutmaydi, balki umuman barcha hisoblarni bildiradi. Agar biz bu raqamni bitta hisob uchun o'zgartirsak, u boshqa hisob uchun ham o'zgarishi kerak. Ya'ni, ob'ekt holatini saqlaydigan Sum va Rate xususiyatlaridan farqli o'laroq, m_inSum o'zgaruvchisi bu sinfning barcha ob'ektlari uchun holatni saqlaydi.
GetSum usuli bilan ham xuddi shunday - u hisobdagi summani ma'lum vaqtdan keyin ma'lum bir boshlang'ich summa uchun ma'lum foiz stavkasi bo'yicha hisoblab chiqadi. Bu usulning chaqiruvi va natijasi ma'lum bir ob'ektga yoki uning holatiga bog'liq emas.
Shunday qilib, sinfdagi barcha ob'ektlar uchun umumiy holatni saqlaydigan o'zgaruvchilar va xususiyatlar statik deb ta'riflanishi kerak. Shuningdek, barcha ob'ektlarga xos bo'lgan xatti -harakatlarni belgilaydigan usullar ham statik deb e'lon qilinishi kerak.
Sinfning statik a'zolari bu sinfning barcha ob'ektlari uchun umumiydir, shuning uchun ularga sinf nomi bilan murojaat qilish kerak:
Account.MinSum = 560;
decimal result = Account.GetSum(1000, 10, 5);

Shuni yodda tutish kerakki, statik usullar faqat sinfning statik a'zolariga kira oladi. Biz statik bo'lmagan usullarga, maydonlarga, xususiyatlarga murojaat qila olmaymiz.


Statik maydonlar tez -tez hisoblagichlarni saqlash uchun ishlatiladi. Misol uchun, bizda User sinfi bor va biz qancha User ob'ektlari yaratilganligini bizga bildiradigan hisoblagichga ega bo'lishni xohlaymiz:
class User
{
private static int counter = 0;
public User()
{
counter++;
}
public static void DisplayCounter()
{
Console.WriteLine($"{counter} User ob'ektlari yaratildi ");
}
}
class Program
{
static void Main(string[] args)
{
User user1 = new User();
User user2 = new User();
User user3 = new User();
User user4 = new User();
User user5 = new User();
User.DisplayCounter(); // 5
Console.ReadKey();
}
}



Download 58.06 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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