Java反问题

时间:2010-09-28 19:59:06

标签: java

对于public void setValue(int newcount)我该怎么做才能让其他程序发送的值用来设置newcount?此外,我必须这样做“如果newcount< zero或> maxValue,什么也不做。”

    private int maxValue;
    private int count;

    /**
    * Constructor for objects of class Counter
    */
    public Counter(int maxValue) 
    {
        maxValue = 0;
    }

    public void decrement()
    {
       if (count == maxValue)
       {
           count = maxValue;        
       }
       else
       {
           --count;
       }
    }

   public int getValue() 
    {
        return maxValue;
    }

   public void increment()
    {
       if (count  == maxValue)
       {
           count = 0;        
       }
       else
       {
           ++count;
       }
    }

    public void setValue(int newcount) 
    {


    }


   public String toString()
    {
        return "Counter{" + "maxValue=" + maxValue + '}';
    } 
}

4 个答案:

答案 0 :(得分:1)

我对这有什么感到困惑:

 public void decrement()
{
   if (count == maxValue)
   {
       count = maxValue;        
   }

似乎实际上并没有递减价值。事实上,由于count == maxValue,设置它没有意义。

答案 1 :(得分:1)

这应该有效:

public void setValue(int newcount) {
  if ((newcount < 0) || (newcount > maxValue))
    return;
  counter = newcount;
}

答案 2 :(得分:1)

你的构造函数不符合你的意思:

private int maxValue;

/**
* Constructor for objects of class Counter
*/
public Counter(int maxValue) 
{
    maxValue = 0;
}

您的代码只是将其参数设置为零,参数名称隐藏属性(以及为什么将其设置为0?)

添加@param javadoc行的工作原理是:

private int maxValue;

/**
 * Constructor for objects of class Counter.
 * @param newMaxValue The maximum counter value.
*/
public Counter(int newMaxValue) 
{
    maxValue = newMaxValue;
}

答案 3 :(得分:0)

public void setValue(int newcount) 
{
   if(newcount >= 0 && newcount <= maxcount)
   {
      count = newcount;
   }
}