Sobes.tech
Junior

Java'da 'static' kalit so'zi nima anglatadi?

sobes.tech AI

AIdan javob

Java'da static elementlarni sinfga tegishli bo‘lib, aniq bir obyekt nusxasiga emas, balki sinfga tegishli bo‘lishini e’lon qilish uchun ishlatiladi.

Kalit so‘z quyidagilarga qo‘llanilishi mumkin:

  • O‘zgaruvchilar (maydonlar):
    • Bir nusxa o‘zgaruvchining nusxasi butun sinf uchun mavjud bo‘lib, yaratilgan nusxalar sonidan qat’i nazar.
    • Uni sinf nomi orqali (masalan, ClassName.staticVariable) kirish mumkin.
    // Statik o‘zgaruvchi misoli
    public class MyMath {
        public static final double PI = 3.14159;
        // Kirish: MyMath.PI
    }
    
  • Metodlar:
    • Metod sinfga tegishli, aniq obyektga emas.
    • Uni sinf nomi orqali chaqirish mumkin (masalan, ClassName.staticMethod()).
    • Sinfning statik bo‘lmagan a’zolariga (o‘zgaruvchilar yoki metodlar) kirish imkoniyati yo‘q, chunki ular nusxa bilan bog‘langan.
    // Statik metod misoli
    public class Calculator {
        public static int add(int a, int b) {
            return a + b;
        }
        // Chaqiriq: Calculator.add(5, 3)
    }
    
  • Initsializatsiya bloklari:
    • JVMga sinf yuklanganda bir marta bajariladi.
    • Statik maydonlarni initsializatsiya qilish yoki sinf bilan bog‘liq boshqa harakatlarni bajarish uchun ishlatiladi.
    // Statik blok misoli
    public class DataInitializer {
        static {
            // Sinf yuklanganda bajariladigan kod
            System.out.println("DataInitializer sinfi yuklandi.");
        }
    }
    
  • Ichki sinflar (inner/nested classes):
    • Statik ichki sinf oddiy yuqori darajali sinf kabi harakat qiladi, faqat u boshqa sinf ichida joylashgan.
    • Uning tashqi sinf nusxasini yaratmasdan unga kirish mumkin.
    • Faqat tashqi sinfning statik a’zolariga kirish imkoniyatiga ega.
    // Statik ichki sinf misoli
    public class OuterClass {
        static class StaticInnerClass {
            // Statik ichki sinfning maydonlari va metodlari
        }
    }
    // Kirish: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
    

static dan foydalanish utilitar sinflar yaratishda, umumiy ma’lumotlarni saqlashda va sinf darajasida holatni boshqarishda yordam beradi.