Sobes.tech
Junior

Do jakich zastosowań nadaje się modyfikator static?

sobes.tech AI

Odpowiedź od AI

  1. Zmienne klasy (pola statyczne): Do przechowywania danych wspólnych dla wszystkich instancji klasy. Na przykład licznik utworzonych obiektów lub stałe.
  2. Metody klasy (metody statyczne): Do wykonywania działań, które nie zależą od konkretnego egzemplarza klasy. Na przykład funkcje pomocnicze lub metody do pracy z polami statycznymi.
  3. Statyczne bloki inicjalizacyjne: Do wykonywania skomplikowanej inicjalizacji pól statycznych podczas ładowania klasy.
  4. Statyczne klasy wewnętrzne: Do logicznego grupowania powiązanych klas lub do używania jako klas pomocniczych bez odniesienia do zewnętrznego obiektu.

Przykłady:

public class MyClass {
    // Pole statyczne (stała)
    public static final int MAX_COUNT = 100;

    // Pole statyczne (licznik instancji)
    private static int instanceCount = 0;

    // Statyczny blok inicjalizacyjny
    static {
        System.out.println("MyClass załadowana.");
    }

    public MyClass() {
        instanceCount++;
    }

    // Statyczna metoda
    public static int getInstanceCount() {
        return instanceCount;
    }

    // Statyczna klasa wewnętrzna
    public static class StaticInnerClass {
        public void doSomething() {
            System.out.println("W statycznej klasie wewnętrznej.");
        }
    }
}

Tabela porównawcza członków statycznych i niestatycznych:

Cecha Członek statyczny Członek niestatyczny
Związek z obiektem Należy do klasy Należy do instancji
Dostęp Przez nazwę klasy lub obiekt Przez obiekt
Inicjalizacja Podczas ładowania klasy Podczas tworzenia obiektu
Pamięć Przydzielana raz Przydzielana dla każdego obiektu