2.6. Statik elementlar.
Yuqorida aytib o’tganimizdek sinflarda tatic maydonlar va metodlar mavjud. Statikmas hadlardan tatic hadlar shunisi bilan farqlanadiki mazkur sinfning barcha obektlari uchun ular umumiydir. Masalan agar gap nostatik hadlar haqida ketsa, sinfning har bir obektida bu maydon obekt uchun o’ziga xos masmunga ega bo’ladi. Agar maydon tatic bo’lsa barcha obektlarda bu maydonning mazmuni bir xil bo’ladi. Statik metodlarda bu holat ancha murakkabdir, shuning uchun tatic metodlarni qo’llanilishini va elon qilinishini ko’rib chiqamiz. Sinfning tatic maydoni va metodini elon qilish uchun static kalit so’zidan foydalaniladi. Statik maydonlarni tavsiflash sintaksisi quyidagicha:
static maydon_tipi maydon_nomi; //static maydonni tavsiflash
Static kalit so’zidan oldin maydonga foydalanish huquqini beruvchi spessifikator kelishi mumkin (public, protected, private). Statik maydon mazmunining inisializatsiyasi maxsus tatic bloklarda amalga oshiriladi. Statik blok ham static kalit so’zi bilan ajratiladi. Static kalit so’zidan keyin qavs ichida sinf tatic maydonlarining inisializatsiyasi buyrug’i keladi. Statik blok majburiy hisoblanmaydi. Statik bloklarni tavsiflash sintaksisi quyudagicha:
static{ //static blokning boshlanishi
//static blok
} //static blokning tugallanishi
Sinfdan tashqari tatic elementlarga murojat oddiy usulda (obekt orqali) amalga oshirilishi mumkin, bevosita sinf orqali murojat qilinadi: sinf nomidan keyin nuqta orqali tatic maydon nomi ko’rsatiladi. Bundan tashqari tatic matodlarga this va super kalit so’zlarini ishlatish mumkin emas. Statik usullar tatic maydon kabi elon qilinadi. Metodni elon qilishda static kalit so’zi ko’rsatildi.
Static tip metod_nomi(tip argument1,tip argument2,…){
//metod tanasi
}
Sinfdan tashqari tatic metodlarni chaqirish sinf_nomi.metod_nomi() ko’rinishida amalga oshiriladi. Quyuda tatic maydonlar va tatic maydonlar elon qilish va foydalanish ko’rsatilgan:
class Arifmetika {
static int a;
static int b;
static int qoshish() {
return a + b;
}
static int ayirish() {
return a-b;
}
static double kopaytirish() {
return a*b;
}
static double bulish() {
return a/b;
}
}
public class Proba {
public static void main(String[] arg){
Arifmetika.a=15;
Arifmetika.b=5;
System.out.println(“Ikkita sonning yig’indisi: “+Arifmetika.qoshish());
System.out.println(“Ikkita sonning ayirmasi: “+Arifmetika.ayirish());
System.out.println(“Ikkita sonning ko’paytmasi: “+Arifmetika.kopaytirish());
System.out.println(“Ikkita sonning bo’linmasi: “+Arifmetika.bulish());
}
}
Dastur ishga tushurilganda natija quyudagicha bo’ladi:
Ikkita sonning yig’indisi: 20
Ikkita sonning ayirmasi: 10
Ikkita sonning ko’paytmasi: 75.0
Ikkita sonning bo’linmasi: 3.0
Arifmetika sinfi ikkita maydon va to’rtta metoddan iborat. Ushbu metodlarning vazifalari ikkita sonni qo’shish, ko’paytirish, bo’lish va ayirishdir. Ushbu sinfdan asosiy sinfimizda foydalanib ko’rsatilgan.
Do'stlaringiz bilan baham: |