0

質問は:

Counter以下を含むクラスの定義を記述します 。

  • タイプ の counter という名前のインスタンス変数  int 。

  • limittype  という名前のインスタンス変数  int  。

  • 0 に初期化されるという名前の静的  int 変数  。nCounters

  • 最初のパラメーターをに、2 番目 int のパラメーターを に割り当てる 2 つのパラメーターを取るコンストラクター。また、静的変数に 1 を追加します  。counterlimitnCounters

  • という名前のメソッド  increment  。パラメータを取らず、値を返しません。
    インスタンス変数  counterが より小さい場合  、limitincrement は単にインスタンス変数に 1 を追加します  counter

  • decrementパラメータをとらず、値を返さないという名前のメソッド  。
    counterがゼロより大きい場合、 から 1 を引くだけ ですcounter

  • getValueインスタンス変数の値を返す  という名前のメソッド  counter

  • getNCounters静的変数 の値を返す という名前の静的メソッド 
    nCounters

私のジレンマ

コードは正常に動作しますが、次のことを知りたいです。

最初の静的プライベートと 2 番目のパブリックはなぜですか?

私のコード:

public class Counter 
{
    private int counter;
    private int limit;
    private static int nCounters = 0;
    public Counter (int x, int y)
    {
        counter = x;
        limit   = y;
        nCounters++;
    }
    public void increment () 
    {
        if( counter < limit)
        {
            counter++;
        }
    }
    public void decrement () 
    {
        if(counter > 0)
        {
            counter--;
        }
    }
    public int getValue ()
    {
        return counter;
    }
    public static int getNCounters ()
    {
        return nCounters;
    }
}
4

2 に答える 2

0

最初の静的変数はプライベートです。クラスで制御する必要があるためです。外部のコードで変更するnCounters必要はありません。Counterただし、の外部でその値を読み取れるようにする必要があるCounterため、getNCounters()メソッドはパブリックです。

于 2013-03-14T09:22:36.643 に答える