Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

静的メソッドの必要性について

メソッドについて質問です。
静的メソッドって何のためにあるのですか?

2

回答

79096

閲覧

2件の回答

評価

0

まず、忘れてはいけないのがmainメソッドです。
インスタンスメソッドはインスタンスが生成されない限り存在しませんから、mainメソッドがstaticでなければ、そのクラスは実行できません。

それ以外のstaticメソッドについては、インスタンスメソッドにできないかといえば、そういうことはありません。
フィールドでもメソッドも、あるインスタンスにひもづくのでなく、クラス自体にひもづくものである場合、static属性が選ばれます。
例えば、認証機関を表すクラスAuthenticator(パラメータはファイルから読みこむ)に対して、

new Authenticator().login(user);

と実装することはできます。
が、複数のAuthenticatorのインスタンスが別々の情報を保持はしませんし、そうすると、いちいちインスタンスを作るのも変だと思いませんか?
(インスタンスの生成と破棄は、それなりに重い処理です)

メソッドをインスタンスにひもづける意味はありませんから、

Authenticator.login(user);

こんな実装になります。

評価

0

デザインパターンをちょっと勉強するとstaticが必要な場面というのはすぐに出てきますよ。
例えばsingletonパターンとかFactoryMethodパターンとか。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。