CodeGym /Java Blog /ランダム /Javaの静的クラスとは何ですか?
John Squirrels
レベル 41
San Francisco

Javaの静的クラスとは何ですか?

ランダム グループに公開済み
Java はオブジェクト指向プログラミング言語であり、オブジェクトは Java の主要な構成要素です。ただし、Java には静的クラスの概念も提供されています。静的クラスは、静的メソッド、変数、およびネストされたクラスのみを含めることができるクラスです。この記事では、静的クラスとは何か、その仕組み、Java での実装について説明します。

Javaの静的クラス

Java の静的クラスは、インスタンス化できないクラスです。つまり、静的クラスのオブジェクトを作成することはできません。クラス名自体を使用してのみそのメンバーにアクセスできます。つまり、静的クラスは静的メンバーのみを含むクラスです。静的クラスは、関連するユーティリティ メソッドをグループ化するためによく使用されます。たとえば、 Java のMathクラスは、最大値または最小値の検索、三角関数などのさまざまな数学演算を提供する静的クラスです。Math.max(5, 10)のように、クラス名とドット演算子を使用して Math クラスのメソッドにアクセスできます。

Java の静的クラスの例を見てみましょう。文字列の反転、文字列の長さの検索など、さまざまな文字列操作を実行するクラスを作成するとします。この例では、 StringUtilsという静的クラスを作成しました。このクラスには、 reverselengthという 2 つの静的メソッドが含まれています。これらのメソッドは文字列を引数として受け取り、それぞれ反転した文字列と文字列の長さを返します。mainメソッドでは、文字列strを作成し、それをStringUtilsクラスの `reverse` メソッドと `length` メソッドに渡しました。
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);
    }
}
プログラムの出力は次のようになります。
!dlrow、olleH 13
次に更新された例では、 StringUtilsクラス内にFormatter という静的なネストされたクラスを追加しました。この静的ネストされたクラスには、文字列を受け取り、その大文字バージョンを返す formatと呼ばれる静的メソッドも含まれています。mainメソッドでは、静的ネストされたクラスFormatterを使用して文字列strをフォーマットし、それをコンソールに出力しました。また、 StringUtilsクラスのreverseメソッドとlengthメソッドを呼び出して、それぞれ文字列を反転し、その長さを調べました。
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);
    }
}
プログラムの出力は次のようになります。
こんにちは世界!!dlrow、olleH 13
ご覧のとおり、Java の静的クラスには、関連する機能をグループ化するために使用できる、入れ子になった静的クラスも含めることができます。

結論

結論として、Java の静的クラスは、静的メソッド、変数、およびネストされたクラスのみを含めることができるクラスです。静的クラスのオブジェクトを作成することはできず、クラス名自体を使用してのみそのメンバーにアクセスできます。静的クラスは、関連するユーティリティ メソッドをグループ化するためによく使用されます。上の例では、静的クラスを作成し、それを使用してさまざまな文字列操作を実行する方法を説明しました。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION