Sobes.tech
Junior

Kas yra statinės kintamosios?

sobes.tech AI

Atsakymas iš AI

Statinės kintamosios priklauso klasei, o ne konkrečiam egzemplioriui. Jos egzistuoja viename egzemplioriuje viso programos vykdymo metu ir yra bendrinamos visų tos klasės objektų tarp. Keisdami statinę kintamąjį vienas objektas, tai matys ir kiti.

Pagrindinės savybės:

  • Priklausomybė: klasei.
  • Egzempliorių skaičius: vienas kiekvienai klasei.
  • Gyvavimo laikas: nuo klasės įkėlimo iki programos pabaigos.
  • Prieiga: Dažniausiai per klasės pavadinimą ClassName.staticVariable, nors prieiga per egzempliorių taip pat įmanoma (nerekomenduojama).
  • Inicijavimas: vieną kartą įkeliant klasę.

Naudojimo pavyzdžiai:

  • Sukurtų klasių objektų skaitiklis.
  • Visai klasei bendros konstantos.
  • Bendri ištekliai, valdoma klase.

Java pavyzdys:

class MyClass {
    static int counter = 0; // Statinė kintamoji

    public MyClass() {
        counter++; // Didina statinį skaitiklį kuriant objektą
    }

    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        MyClass obj2 = new MyClass();

        System.out.println(MyClass.counter); // Išeiga: 2
    }
}

Python pavyzdys:

class MyClass:
    counter = 0  # Statinė kintamoji

    def __init__(self):
        MyClass.counter += 1  # Didina statinį skaitiklį

    def main():
        obj1 = MyClass()
        obj2 = MyClass()

        print(MyClass.counter) # Išeiga: 2

    if __name__ == "__main__":
        main()