こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

Javaのstaticメソッドの意味を教えて下さい。
現在の解釈では、staticなメソッドとはインスタンスの生成に依存せず呼び出せる処理のことだと認識しています。逆にstaticでないメソッドは、生成後のインスタンスにしか使えない処理だと理解しています。

しかし、コンストラクタがstaticでないことに気がつき、疑問が生まれました。コンストラクタはstaticではないので、コンストラクタを呼び出す時にはそのクラスのインスタンスが必要になるはずです。しかしこのインスタンスを作るのにもコンストラクタが必要です。コンストラクタを使うためにインスタンスが必要で、インスタンスを作るためにコンストラクタが必要という無限ループになってしまいました。

そこで改めて、staticメソッドの意味を教えて頂きたいです。

投稿日時 - 2020-09-10 16:12:31

QNo.9797272

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

投稿日時 - 2020-09-10 23:05:11

ANo.1

コンストラクタはstaticメソッド・インスタンスメソッドとは別の種類のメソッドであると考えてください。

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

投稿日時 - 2020-09-10 18:12:47

あなたにオススメの質問