Sobes.tech
Junior

Ի՞նչ է նշանակում 'ստատիկ' տերմինը։

sobes.tech AI

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

Ծրագրավորման մեջ, «ստատիկ» տերմինը կարող է վերաբերում տարբեր հասկացողությունների, բայց ամենից հաճախ նշանակում է ինչ-որ բան, որը կապված է կոմպիլյացիայի ժամանակի կամ դասի պատկանելիության հետ, ոչ թե կոնկրետ օբյեկտի օրինակին:

  • Ստատիկ կապում (Static Binding): Կոչվող ֆունկցիայի սահմանումը կատարվում է կոմպիլյացիայի ժամանակ, ոչ թե գործարկման ժամանակ: Սա հակառակ է դինամիկ կապին:
  • Ստատիկ փոփոխականներ/գոտիներ (Static Variables/Fields): Փոփոխականներ, որոնք պատկանում են դասին, ոչ թե կոնկրետ օբյեկտին այդ դասից: Բոլոր նույն դասի օբյեկտները կիսում են նույն ստատիկ փոփոխականը: Դրանք inicialիզացվում են դասի բեռնումից հետո և գոյություն ունեն միայն մեկ օրինակով:
  • Ստատիկ մեթոդներ (Static Methods): Մեթոդներ, որոնք պատկանում են դասին, ոչ թե կոնկրետ օբյեկտին: Դրանք կարող են անմիջապես կանչվել դասի անունով՝ առանց օրինակ ստեղծելու: Ստատիկ մեթոդները չունեն մուտք դեպի ոչ-ստատիկ դաշտեր, քանի որ չեն կապված կոնկրետ օրինակին:
  • Ստատիկ կոդի վերլուծություն (Static Code Analysis): Ծրագրի աղբյուրային կոդի վերլուծություն առանց նրա գործարկման: Օգտագործվում է հնարավոր սխալների, թափանցիկությունների կամ կոդավորման ստանդարտների խախտումների հայտնաբերման համար՝ վաղ փուլում:

QA կոնտեքստում, ստատիկ վերլուծությունն ու կոդի թեստավորումը կարևոր մասեր են գործընթացի, որոնք օգնում են բարելավել որակը՝ նախքան դինամիկ թեստավորման և կոդի գործարկման փուլերը:

Java-ում ստատիկ դաշտի և մեթոդի օրինակ՝

class Counter {
    static int count = 0; // Ստատիկ դաշտ

    Counter() {
        count++;
    }

    static void displayCount() { // Ստատիկ մեթոդ
        System.out.println("Նմուշների քանակը՝ " + count);
    }
}

// Օգտագործում
// Counter obj1 = new Counter();
// Counter obj2 = new Counter();
// Counter.displayCount(); // Ստատիկ մեթոդի կանչ՝ դասի անունով