最速怪談選手権

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

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

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

A 回答 (2件)

static なメソッド = クラスを対象にする処理


static イニシャライザ = クラスを対象に(初期化)する処理
static でないメソッド = インスタンスを対象にする処理
コンストラクタ = (new によって作られた)インスタンス(のひな形)を対象に(初期化)する処理
    • good
    • 0

そもそも、コンストラクタとメソッドは切り分けて考えてください


別物です

コンストラクタはインスタンス生成時に動く特別な処理だと思ってください
コンストラクタを呼んでいるのではなく、コンストラクタが自動的に動いているだけです。

なのでstaticをメソッドに付けた場合とコンストラクタに付けた場合では
全く違う動きになります
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!