Sobes.tech
Junior

Pentru ce aplicații este potrivit modificatorul static?

sobes.tech AI

Răspuns de la AI

  1. Variabile de clasă (câmpuri statice): Pentru stocarea datelor comune tuturor instanțelor clasei. De exemplu, un contor al obiectelor create sau constante.
  2. Metode de clasă (metode statice): Pentru efectuarea acțiunilor care nu depind de o instanță specifică a clasei. De exemplu, funcții auxiliare sau metode pentru lucrul cu câmpuri statice.
  3. Blocuri de inițializare statică: Pentru efectuarea unei inițializări complexe a câmpurilor statice la încărcarea clasei.
  4. Clase interne statice: Pentru gruparea logică a claselor conexe sau pentru utilizarea ca clase auxiliare fără referință la un obiect extern.

Exemple:

public class MyClass {
    // Câmp static (constantă)
    public static final int MAX_COUNT = 100;

    // Câmp static (contor de instanțe)
    private static int instanceCount = 0;

    // Bloc de inițializare static
    static {
        System.out.println("MyClass încărcată.");
    }

    public MyClass() {
        instanceCount++;
    }

    // Metodă statică
    public static int getInstanceCount() {
        return instanceCount;
    }

    // Clasă internă statică
    public static class StaticInnerClass {
        public void doSomething() {
            System.out.println("În clasa internă statică.");
        }
    }
}

Tabel comparativ al membrilor statici și non-statici:

Caracteristică Membru static Membru non-static
Legătura cu obiectul Aparține clasei Aparține instanței
Acces Prin numele clasei sau obiect Prin obiect
Inițializare La încărcarea clasei La crearea obiectului
Memorie Alocată o singură dată Alocată pentru fiecare obiect