Java 按步骤递增一个数字,例如2、4、6、8
我有一个扩展计数器的StepCounter类。计数器有一个递增方法,它向计数器中添加1。我需要重写此方法,以便StepCounter类中的increment方法将计数器增加“step”的值,例如,如果step=2,则增量将向计数器添加2,而不是1。不知怎么的,我不能让它工作。这就是我所做的编码:Java 按步骤递增一个数字,例如2、4、6、8,java,Java,我有一个扩展计数器的StepCounter类。计数器有一个递增方法,它向计数器中添加1。我需要重写此方法,以便StepCounter类中的increment方法将计数器增加“step”的值,例如,如果step=2,则增量将向计数器添加2,而不是1。不知怎么的,我不能让它工作。这就是我所做的编码: public class StepCounter extends Counter { //fields private int step; //constructors
public class StepCounter extends Counter {
//fields
private int step;
//constructors
public StepCounter() {
super();
step = 2;
}
public StepCounter(int count, int step) {
super(count);
this.step = step;
}
//methods
public void setStep(int step) {
this.step = step;
}
public int getStep() {
return step;
}
@Override
public void increment() {
super.getCount() += step;
}
}
我已经尝试过各种风格,比如
super.getCount()+=getStep()
等等
顺便说一句,getCount()方法从计数器类返回计数值。您得到了该值,但没有设置它。
试着这样做:
setCount(getCount() + step);
在这种情况下,也不需要super
关键字,如果您的继承类不重写getCount()
,没有它,它的可读性会更好。getCount()
方法是从计数器继承的,所以您应该这样做
@Override
public void increment() {
Integer tmp = this.getCount() += step;
setCount(tmp);
}
此外,在无参数构造函数中,应该正确初始化step变量
public StepCounter() {
super();
this.step = 2;
}
您希望如何处理递增的值?它从未被分配到任何地方@DaDaDom,increment方法应从计数器类中递增计数值。我使用了super.getCount(),因为它返回count值。我想创建一个StepCounter类型的ArrayList,并向其中添加一些数据。然后我想创建一个for循环,它将一个接一个地打印10个结果,显示计数器的工作方式。
此外,在无参数构造函数中,您应该正确初始化step变量。
这里不需要使用this
。我怀疑count
是primitve,这会导致不必要的自动装箱。出于我自己的原因,我在任何地方处理数学运算时都避免使用原语,更喜欢使用异常处理的自动装箱。@拉齐奥你应该开始接受帮助你的答案,让其他人看到,这些问题已经得到了回答。