Javaのクラスメソッド(静的メソッド)とは?基本から使い方まで解説
Javaにおけるクラスメソッド(静的メソッド)とは、特定のオブジェクトのインスタンスではなく、クラスそのものに対して呼び出されるメソッドのことです。static修飾子を付けることで、すべてのクラスインスタンス間で同じ実装が保証されます。
静的メソッドはインスタンス化せずに呼び出すことができるため、アクセスできるのはクラス内の他の静的メンバー(staticなフィールドやメソッド)のみです。インスタンス変数や非staticメソッドには直接アクセスできない点に注意しましょう。
Javaの標準ライブラリにも多くの静的メソッドが用意されています。代表的な例としては、Math.random()、System.gc()、Math.sqrt()などが挙げられます。これらはいずれもオブジェクトを生成することなく、クラス名を指定して直接呼び出しています。
構文(Syntax)
public class className {
modifier static dataType methodName(inputParameters) {
// 実行するコードブロック
}
}サンプルコード(Example)
以下の例では、2つの整数のうち小さい方を返す静的メソッド findMinimum() を定義し、インスタンスを作成せずにクラス名から直接呼び出しています。
public class ClassMethodTest {
public static int findMinimum(int num1, int num2) {
int minimum = num2;
if (num1 < num2)
minimum = num1;
return minimum;
}
public static void main(String args[]) {
int min = ClassMethodTest.findMinimum(3, 5); // インスタンスなしで呼び出し
System.out.println("ClassMethodTest.findMinimum(3, 5) is: " + min);
}
}実行結果(Output)
ClassMethodTest.findMinimum(3, 5) is : 3
静的メソッドを使うメリット
- インスタンス生成が不要: オブジェクトを作らずに呼び出せるため、ユーティリティ的な処理に適しています。
- 共通の振る舞いを保証: すべてのインスタンスで同一の実装になるため、状態に依存しない処理に向いています。
- プログラムのエントリーポイント: Javaの
mainメソッド自体が静的メソッドであり、JVMがインスタンス化なしで起動時に呼び出せるようになっています。
-
Pythonの静的メソッド(@staticmethod)とは?仕組みと使い方を解説
Pythonのクラスには、インスタンスメソッド、クラスメソッド、静的メソッド(スタティックメソッド)という3種類のメソッドを定義できます。それぞれ役割や呼び出し方が異なり、適切に使い分けることでコードの可読性と保守性が向上します。3種類のメソッドの違いインスタンスメソッド: 第1引数に self を受け取り、オブジェクト(インスタンス)の状態にアクセス・変更できます。クラスメソッド: @classmethod デコレータを付け、第1引数に cls を受け取り、クラス自体の状態にアクセスできます。静的メソッド: @staticmethod デコレータを付け、self も cls も受け取りません
-
Pythonの基本オーバーロードメソッドとは?仕組みと使い方を実例で解説
Pythonのクラスが持つオブジェクト指向の標準機能Pythonのクラスは、オブジェクト指向プログラミング(OOP)パラダイムに必要な標準的な機能をすべて備えています。その中核となるのがクラス継承の仕組みで、Pythonでは複数の基底クラス(親クラス)から同時に継承できる「多重継承」がサポートされています。さらに、派生クラス(子クラス)は基底クラスの任意のメソッドを自由に上書き(オーバーライド)できます。また、オーバーライドしたメソッドの中から、super()を使って同じ名前の基底クラスのメソッドを呼び出すことも可能です。メソッドオーバーライドの基本例以下は、基底クラスのメソッドを派生クラスで