我有两个类,Progression 和 FibonacciProgression,但是当在 4 和 6 上调用 print 方法时,FibonacciProgression 会打印出一些意想不到的结果,如下所示。谁能解释这是为什么?
public class Progression {
protected long first;
protected long cur;
Progression() {
cur = first = 0;
}
protected long firstValue() {
cur = first;
return cur;
}
protected long nextValue() {
return ++cur;
}
public void printProgression(int n) {
System.out.print(firstValue());
for (int i = 2; i <= n; i++) {
System.out.print(" " + nextValue());
}
System.out.println();
}
public static void main (String[] args) {
Progression prog = new Progression();
System.out.println("Default Progression: ");
prog.printProgression(10);
}
}
和..
public class FibonacciProgression extends Progression {
protected long prev;
FibonacciProgression(long value1, long value2) {
first = value1;
prev = value2 - value1;
}
FibonacciProgression() {
this(0,1);
}
protected long nextValue() {
long temp = prev;
prev = cur;
cur += temp;
return cur;
}
public static void main (String[] args) {
Progression fibProg = new FibonacciProgression(2,5);
System.out.println("Default Progression: ");
fibProg.printProgression(4);
fibProg.printProgression(6);
}
}