1. ホーム
  2. java

[解決済み] 静的メソッドを使用する場合

2022-03-17 16:55:05

質問

静的メソッドを使用するタイミングはいつなのでしょうか?例えば、いくつかのゲッターとセッター、1つまたは2つのメソッドを持つクラスがあり、それらのメソッドをそのクラスのインスタンスオブジェクトに対してのみ呼び出すことができるようにしたい場合です。これは、静的メソッドを使用する必要があることを意味するのでしょうか?

Obj x = new Obj();
x.someMethod();

...または

Obj.someMethod(); // Is this the static way?

むしろ混乱してる!

どのように解決するのですか?

オブジェクトがまだ構築されていない場合でも、このメソッドを呼び出すことに意味があるのか?

そのため、クラスの中で Car メソッドがあるかもしれません。

double convertMpgToKpl(double mpg)

を誰も作ったことがなくても、35mpgの換算値を知りたいと思うかもしれないので、静的なものでしょう。 Car . しかし、この方法(ある特定の Car ):

void setMileage(double mpg)

の前にメソッドを呼び出すことは考えられないので、静的であることはできません。 Car が構築されました。

(ちなみに、逆は必ずしも真ではない: メソッドに2つの Car オブジェクトを静的化することができます。 例えば

Car theMoreEfficientOf(Car c1, Car c2)

これは非静的なバージョンに変換することができますが、どの Car はより重要であるため、呼び出し側にどちらかを選ぶよう強制すべきではありません。 Car をメソッドを呼び出すオブジェクトとして使用します。 このような状況は、すべての静的メソッドの中でかなり少数派ですが。