Sobes.tech
Junior

Ի՞նչ են ստատիկ փոփոխականները։

sobes.tech AI

Պատասխան AI-ից

Ստատիկ փոփոխականները պատկանում են դասին, ոչ թե կոնկրետ օրինակին։ Դրանք գոյություն ունեն միայն մեկ օրինակով ողջ ծրագրի ընթացքում և բաժանվում են բոլոր այդ դասի օբյեկտների միջև։ Ստատիկ փոփոխականի փոփոխությունը մեկ օբյեկտից կլինի տեսանելի մյուս բոլոր օբյեկտների համար։

Հիմնական հատկանիշներ՝

  • Հատկություն: Դասին։
  • Նմուշների քանակը: Միայն մեկ՝ դասի համար։
  • Կյանքի ժամանակը: Դասի բեռնումից մինչև ծրագրի ավարտը։
  • Մուտք: Հաճախ դասի անվան միջոցով՝ ClassName.staticVariable, սակայն հնարավոր է նաև մուտք գործել օրինակով (չի խորհուրդ տրվում)։
  • Անցկացման ժամանակը: Միայն մեկ անգամ՝ դասի բեռնումին։

Օգտագործման օրինակներ՝

  • Դասի ստեղծած օբյեկտների հաշվիչ։
  • Ընդհանուր հաստատուններ՝ ամբողջ դասի համար։
  • Ընդհանուր ռեսուրսներ՝ որոնք կառավարում է դասը։

Java օրինակ՝

class MyClass {
    static int counter = 0; // Ստատիկ փոփոխական

    public MyClass() {
        counter++; // Ստատիկ հաշվիչը մեծացնում է օբյեկտի ստեղծումից հետո
    }

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

        System.out.println(MyClass.counter); // Արտածում՝ 2
    }
}

Python օրինակ՝

class MyClass:
    counter = 0  # Ստատիկ փոփոխական

    def __init__(self):
        MyClass.counter += 1  # Ստատիկ հաշվիչը մեծացնում է

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

        print(MyClass.counter) # Արտածում՝ 2

    if __name__ == "__main__":
        main()