Sobes.tech
Junior

Čo znamená pojem 'statický'?

sobes.tech AI

Odpoveď od AI

V programovaní môže term "statický" odkazovať na rôzne koncepty, ale najčastejšie označuje niečo súvisiace s časom kompilácie alebo s príslušnosťou ku triede, a nie ku konkrétnemu výtlačku objektu.

  • Statické viazanie (Static Binding): Definícia volanej funkcie sa deje počas kompilácie, nie počas behu. Toto je opak dynamického viazania.
  • Statické premenné/polia (Static Variables/Fields): Premenné patriace triede, nie konkrétnemu objektu tejto triedy. Všetky objekty jednej triedy zdieľajú rovnakú statickú premennú. Sú inicializované pri načítaní triedy a existujú v jednom výtlačku.
  • Statické metódy (Static Methods): Metódy patriace triede, nie konkrétnemu objektu. Môžu byť volané priamo cez názov triedy bez vytvorenia inštancie. Statické metódy nemajú prístup k nestatickým poliam triedy, pretože nie sú viazané na konkrétny výtlačok.
  • Statická analýza kódu (Static Code Analysis): Analýza zdrojového kódu programu bez jeho spustenia. Používa sa na odhalenie potenciálnych chýb, zraniteľností alebo porušení štandardov kódovania v raných fázach vývoja.

V kontexte QA sú statická analýza a testovanie kódu dôležitou súčasťou procesu, ktoré pomáhajú zlepšiť kvalitu pred fázou dynamického testovania a vykonávania kódu.

Príklad statického poľa a metódy v Jave:

class Counter {
    static int count = 0; // Statické pole

    Counter() {
        count++;
    }

    static void displayCount() { // Statická metóda
        System.out.println("Počet inštancií: " + count);
    }
}

// Použitie
// Counter obj1 = new Counter();
// Counter obj2 = new Counter();
// Counter.displayCount(); // Volanie statickej metódy cez názov triedy