Java クラスの静的メソッドにはどのような特性がありますか。
Java クラスにおける静的一意な手法は以下のような特徴を持っています。
- 静的メソッドは、オブジェクトではなくクラスに属し、クラス名から直接呼び出すことができ、クラスオブジェクトをインスタンス化する必要はありません。
- 静的メソッドは、クラスの静的変数にアクセス・変更できます。しかし、インスタンス変数にはアクセス・変更できません。その理由は、静的メソッドを呼び出すときはクラスのインスタンスオブジェクトが作成されていない場合があります。
- thisキーワードはインスタンスメソッドで利用できます。これに対し、staticメソッドでは利用できません。なぜなら、staticメソッドはオブジェクトのインスタンスとは独立して呼び出されるからです。
- staticメソッドはサブクラスでオーバーライドすることはできず、継承だけできます。サブクラスで親クラスのstaticメソッドと同じシグネチャを持つメソッドを定義した場合、サブクラスのメソッドは親クラスのメソッドを隠蔽するだけで、オーバーライドはしません。
- 他のメソッドから直接呼び出すことができ、そのクラスのオブジェクトを作成する必要がない静的メソッド
- staticメソッドは、子クラスでオーバーライドできないfinalとして宣言できます。
- 静的メソッドはプライベートに宣言することができ、そのクラスの内部でのみアクセス可能となり、外部からはアクセス不可となります。