3

私は静的メソッドを本当に理解できないようです。私はそれに関する多くの記事を読み、教科書や Java ドキュメントでも調べました。静的メソッドを使用して静的変数にアクセスできることは知っています。静的変数を取得する以外に、クラスメソッドを使用する理由は本当にありますか? 別の理由がある場合、その理由の説明を得ることができますか? これについてSOFで何も見つからなかったため、このスレッドも作成しました。

コード例を次に示します。

public class Bicycle {

    private int cadence;
    private int gear;
    private int speed;

    private int id;

    private static int numberOfBicycles = 0;


    public Bicycle(int startCadence,
                   int startSpeed,
                   int startGear){
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;

        id = ++numberOfBicycles;
    }

    public int getID() {
        return id;
    }

    public static int getNumberOfBicycles() {
        return numberOfBicycles;
    }

    public int getCadence(){
        return cadence;
    }

    public void setCadence(int newValue){
        cadence = newValue;
    }

    public int getGear(){
    return gear;
    }

    public void setGear(int newValue){
        gear = newValue;
    }

    public int getSpeed(){
        return speed;
    }

    public void applyBrake(int decrement){
        speed -= decrement;
    }

    public void speedUp(int increment){
        speed += increment;
    }
}
4

5 に答える 5

5

インスタンス メソッドは、クラス変数にもアクセスできます。

良い例はユーティリティ クラスです。オブジェクトを作成するのは面倒だけど、手早く何かをしたいときはどうしますか? そうです: 静的メソッドです。

public static class Utils {
 public static void DoSomething(SomeClass x) { }
}

そうすれば、ただ呼び出すことができますUtils.DoSomething(myObject);

それ以外の

Utils util = new Utils();
util.DoSomething(myObject);

または、あなたの例では、合計で作成された自転車の数を数えます。クラス レベルで保存することにより、変数の状態がすべてのオブジェクト間で同期されます。

于 2013-10-31T00:48:21.703 に答える