|
[modifikator] qiymat_turi Metod_nomi
|
bet | 79/154 | Sana | 08.01.2024 | Hajmi | 5,29 Mb. | | #131939 |
Bog'liq Majmua[modifikator] qiymat_turi Metod_nomi()
{
// metod tanasi
}
Modifikatorlar va parametrlar ixtiyoriy.
Statik metodlar
“static” kalit so‘zi bilan e’lon qilinadigan metodlar statik metodlar deb ataladi.
Statik metodlar barcha obyektlar uchun umumiy bo‘lgan va ma’lum bir obyektga bog‘liq bo‘lmagan xatti-harakatlarni belgilaydi. Statik metodlarga kirish uchun sinf/struktura nomi ham ishlatiladi:
//Person sinfi kodi quyidagicha
using System;
namespace Funksiya
{
class Person
{
public int Age { get; set; }
static int P_yoshi = 65;
public Person(int age)
{
Age = age;
}
public static void Status(Person J_yosh)
{
if (J_yosh.Age >= P_yoshi)
Console.WriteLine("Nafaqaga chiqqan");
else
Console.WriteLine("Nafaqagacha: "+(P_yoshi-J_yosh.Age)+"yil bor");
}
}
}
//Program sinfi kodi quyidagicha
using System;
using Funksiya;
namespace Funksiya
{
class Program
{
public static void Main(string[] args)
{
Person obyekt = new Person(55);
Person.Status(obyekt);
Console.ReadKey(true);
}
}
}
Bunday holda, Person sinfida statik Status() metodi aniqlanadi, u Person obyektini parametr sifatida qabul qiladi va uning pensiya holatini tekshiradi.
E’tibor bering, statik metodlar faqat sinfning statik a’zolariga kirishi mumkin. Statik metod ichidagi statik bo‘lmagan metodlar, maydonlar, xossalarni nazarda tuta olmaymiz.
static kalit so‘zini ko‘rib chiqamiz. Ushbu static kalit so‘z nafaqat metodlarga, balki o‘zgaruvchilarga ham tegishli bo‘ladi, chunki bu kalit so‘z eng ko‘p metodlar bilan ishlatiladi.
Sinf metodiga kirishda, ushbu sinfning obyektini yaratish kerak. Ammo dastur ishga tushganda Main() metodi tizim faqat qaysi metodni chaqirish kerakligini topadi, lekin uni sinf yaratmasdan chaqirish mumkinligi statik kalit so‘zi orqali chaqirish mumkin.
Statik metodlarga sinf yaratmasdan kirish ham mumkin. Ammo darhol cheklov bo‘ladi - statik metod faqat ushbu metod ichida e’lon qilingan o‘zgaruvchilardan foydalanishi mumkin, lekin ular statik bo‘lishi kerak. Bunday metod statik bo‘lmagan tashqi ma’lumotlarga kira olmaydi, chunki obyekt yaratilmagan va agar obyekt yaratilgan bo‘lsa, unda statik metod va ma’lumotlar unga tegishli emas, shuning uchun ishga tushirilmagan ma’lumotlardan foydalanish mumkin emas.
Statik metodlar va o‘zgaruvchilar tizim tomonidan avtomatik ravishda yaratiladi va obyektga emas, sinfga biriktiriladi. Ya’ni loyihaga tegishli va yangi obyekt ishga tushirilganda statik o‘zgaruvchilar uchun xotira ajratilmaydi. Sinfdan qancha obyekt yaratilishidan qat’iy nazar, har doim statik o‘zgaruvchining faqat bitta ko‘rinishi bo‘ladi.
Shed sinfida Obyekt statik o‘zgaruvchisini yarataylik, u dastlab nolga teng bo‘ladi. Sinf konstruktorida o‘zgaruvchining qiymati bittaga oshiriladi va public GetObyekt() metodi o‘zgaruvchining qiymatini qaytaradi:
|
| |