Sobes.tech
Junior

Cosa significa il termine 'statico'?

sobes.tech AI

Risposta dell'AI

In programmazione, il termine "statico" può riferirsi a concetti diversi, ma di solito indica qualcosa legato al tempo di compilazione o alla appartenenza a una classe, e non a un'istanza specifica di un oggetto.

  • Binding statico (Static Binding): La definizione della funzione chiamata avviene durante la compilazione, non durante l'esecuzione. Questo è opposto al binding dinamico.
  • Variabili/Campi statici (Static Variables/Fields): Variabili appartenenti alla classe, non a un'istanza specifica di questa classe. Tutti gli oggetti di una stessa classe condividono la stessa variabile statica. Vengono inizializzate al caricamento della classe e esistono in un'unica istanza.
  • Metodi statici (Static Methods): Metodi appartenenti alla classe, non a un oggetto specifico. Possono essere chiamati direttamente tramite il nome della classe senza creare un'istanza. I metodi statici non hanno accesso ai campi non statici della classe, poiché non sono legati a un'istanza specifica.
  • Analisi statica del codice (Static Code Analysis): Analisi del codice sorgente del programma senza eseguirlo. Viene usata per individuare errori potenziali, vulnerabilità o violazioni degli standard di codifica nelle prime fasi dello sviluppo.

Nel contesto QA, l'analisi statica e i test del codice sono parti importanti del processo, aiutando a migliorare la qualità prima della fase di test dinamici e dell'esecuzione del codice.

Esempio di campo e metodo statici in Java:

class Counter {
    static int count = 0; // Campo statico

    Counter() {
        count++;
    }

    static void displayCount() { // Metodo statico
        System.out.println("Numero di istanze: " + count);
    }
}

// Uso
// Counter obj1 = new Counter();
// Counter obj2 = new Counter();
// Counter.displayCount(); // Chiamata al metodo statico tramite il nome della classe