• 締切済み

Javaのstaticメソッドの意味を教えて下さい

Javaのstaticメソッドの意味を教えて下さい。 現在の解釈では、staticなメソッドとはインスタンスの生成に依存せず呼び出せる処理のことだと認識しています。逆にstaticでないメソッドは、生成後のインスタンスにしか使えない処理だと理解しています。 しかし、コンストラクタがstaticでないことに気がつき、疑問が生まれました。コンストラクタはstaticではないので、コンストラクタを呼び出す時にはそのクラスのインスタンスが必要になるはずです。しかしこのインスタンスを作るのにもコンストラクタが必要です。コンストラクタを使うためにインスタンスが必要で、インスタンスを作るためにコンストラクタが必要という無限ループになってしまいました。 そこで改めて、staticメソッドの意味を教えて頂きたいです。

みんなの回答

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.2

回答No.1で言葉が抜けていました。 「コンストラクタはメソッドに近い性質も持っています。」は「コンストラクタはインスタンスメソッドに近い性質も持っています。」と訂正します。

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

コンストラクタはstaticメソッド・インスタンスメソッドとは別の種類のメソッドであると考えてください。 コンストラクタを呼ぶ際に対象のインスタンスが必要ないという点ではコンストラクタはstaticメソッドに近いです。 しかし、コンストラクタの中身を実行する段階では生成中のインスタンスに対して処理を実行するので、コンストラクタはメソッドに近い性質も持っています。

関連するQ&A