Sobes.tech
Junior

Ce înseamnă cuvântul cheie 'static' în Java?

sobes.tech AI

Răspuns de la AI

static în Java este utilizat pentru a declara elemente care aparțin clasei, nu unei instanțe specifice a obiectului.

Cuvântul cheie poate fi aplicat la:

  • Variabile (câmpuri):
    • O copie a variabilei există pentru întreaga clasă, indiferent de numărul de instanțe create.
    • Se poate accesa prin numele clasei (de exemplu, ClassName.staticVariable).
    // Exemplu de variabilă statică
    public class MyMath {
        public static final double PI = 3.14159;
        // Acces: MyMath.PI
    }
    
  • Metode:
    • Metoda aparține clasei, nu unui obiect specific.
    • Poate fi apelată prin numele clasei (de exemplu, ClassName.staticMethod()).
    • Nu are acces la membrii non-statice ai clasei (variabile sau metode), deoarece sunt legați de instanță.
    // Exemplu de metodă statică
    public class Calculator {
        public static int add(int a, int b) {
            return a + b;
        }
        // Apel: Calculator.add(5, 3)
    }
    
  • Blocuri de inițializare:
    • Se execută o dată la încărcarea clasei în JVM.
    • Se folosește pentru inițializarea câmpurilor statice sau pentru executarea altor acțiuni legate de clasă.
    // Exemplu de bloc static
    public class DataInitializer {
        static {
            // Cod executat la încărcarea clasei
            System.out.println("DataInitializer class loaded.");
        }
    }
    
  • Clase interne (inner/nested classes):
    • Clasa internă statică se comportă ca o clasă de nivel superior, cu excepția faptului că se află în interiorul altei clase.
    • Nu necesită crearea unei instanțe a clasei externe pentru a avea acces la ea.
    • Are acces doar la membrii statici ai clasei externe.
    // Exemplu de clasă internă statică
    public class OuterClass {
        static class StaticInnerClass {
            // Câmpuri și metode ale clasei interne statice
        }
    }
    // Acces: OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();
    

Utilizarea static ajută la crearea de clase utilitare, stocarea datelor comune și gestionarea stării la nivel de clasă.