CodeGym /Blog Java /Random-PL /Co to jest klasa statyczna w Javie?
John Squirrels
Poziom 41
San Francisco

Co to jest klasa statyczna w Javie?

Opublikowano w grupie Random-PL
Java jest obiektowym językiem programowania, a obiekty są głównymi elementami Javy. Jednak Java udostępnia również koncepcję klasy statycznej. Klasa statyczna to klasa, która może zawierać tylko metody statyczne, zmienne i klasy zagnieżdżone. W tym artykule dowiemy się, czym jest klasa statyczna, jak działa i jej implementacja w Javie.

Klasa statyczna w Javie

Klasa statyczna w Javie to klasa, której nie można utworzyć. Oznacza to, że nie możemy tworzyć obiektów klasy statycznej. Dostęp do jej członków możemy uzyskać jedynie poprzez samą nazwę klasy. Innymi słowy, klasa statyczna to klasa, która zawiera tylko statyczne elementy członkowskie. Klasy statyczne są często używane do grupowania powiązanych metod narzędziowych. Na przykład klasa Math w Javie jest klasą statyczną, która udostępnia różne operacje matematyczne, takie jak znajdowanie wartości maksymalnej lub minimalnej, funkcje trygonometryczne i inne. Dostęp do metod klasy Math możemy uzyskać za pomocą nazwy klasy i operatora kropki, na przykład: Math.max(5, 10) .

Przykład

Przyjrzyjmy się przykładowi klasy statycznej w Javie. Załóżmy, że chcemy utworzyć klasę do wykonywania różnych operacji na łańcuchach, takich jak odwracanie łańcucha, znajdowanie długości łańcucha i nie tylko. W tym przykładzie utworzyliśmy klasę statyczną o nazwie StringUtils , która zawiera dwie metody statyczne: wstecz i długość . Metody te przyjmują ciąg jako argument i zwracają odpowiednio odwrócony ciąg i długość ciągu. W metodzie głównej utworzyliśmy ciąg znaków str i przekazaliśmy go do metod `reverse` i `length` klasy StringUtils .
public class StringUtils {

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";

        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
Dane wyjściowe programu będą następujące:
!dlrow,olleH 13
W następnym zaktualizowanym przykładzie dodaliśmy statyczną klasę zagnieżdżoną o nazwie Formatter w klasie StringUtils . Ta statyczna zagnieżdżona klasa zawiera również metodę statyczną o nazwie format , która pobiera ciąg znaków i zwraca jego wersję wielką literą. W metodzie głównej użyliśmy statycznej klasy zagnieżdżonej Formatter , aby sformatować ciąg znaków i wydrukować go na konsoli. Wywołaliśmy także metody odwracające i długości klasy StringUtils , aby odpowiednio odwrócić ciąg znaków i znaleźć jego długość.
public class StringUtils {

    // nested Static class
    public static class Formatter {
        public static String format(String str) {
            return str.toUpperCase();
        }
    }

    public static String reverse(String str) {
        StringBuilder sb = new StringBuilder(str);
        return sb.reverse().toString();
    }

    public static int length(String str) {
        return str.length();
    }

    public static void main(String[] args) {
        String str = "Hello, World!";

        // Using static class
        String formattedStr = StringUtils.Formatter.format(str);
        System.out.println(formattedStr);

        String reversedStr = StringUtils.reverse(str);
        int strLength = StringUtils.length(str);
        System.out.println(reversedStr);
        System.out.println(strLength);
    }
}
Dane wyjściowe programu będą następujące:
WITAJ ŚWIECIE! !dlrow,olleH 13
Jak widać, klasy statyczne w Javie mogą również zawierać statyczne klasy zagnieżdżone, których można używać do grupowania powiązanych funkcji.

Wniosek

Podsumowując, klasa statyczna w Javie to klasa, która może zawierać tylko metody statyczne, zmienne i klasy zagnieżdżone. Nie możemy tworzyć obiektów klasy statycznej i dostęp do jej elementów możemy uzyskać jedynie za pomocą samej nazwy klasy. Klasy statyczne są często używane do grupowania powiązanych metod narzędziowych. W powyższym przykładzie widzieliśmy, jak utworzyć klasę statyczną i używać jej do wykonywania różnych operacji na ciągach znaków.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION