java数字序列是一系列值,其中每个元素的值取决于一个或多个先前的成员。 例如,在等差级数中,下一个元素的值由加法确定,而在几何级数中,由乘法确定。 无论哪种情况,序列都必须有一种方法来确定序列的第一个成员,以及一种方法来确定当前元素。 给定一个进步班。 它定义了数字序列的“公共”字段和方法。 Progression 类包含 Progression() 方法,该方法是一个构造函数,用于在创建该类的新对象时设置类实例变量的初始值。 Progression 类是较低类继承的通用超类。 根据以下内容创建从 Progression 类继承的类 编写一个 ArithProgression 类,它继承自 Progression 类,并通过添加级数的前一个元素和级数的常数差 d 来创建算术级数。 该类必须有一个默认构造函数,它分配序列 2 的第一个值,以及一个参数构造函数,它取决于级数的第一个成员和级数的差异。 编写一个 SquareProgression 类,它继承自 Progression 类并创建一个序列,其成员值为序列前两个成员之和的平方。 该类必须有一个为序列的前两个值 2 和 200 赋值的默认构造函数,以及一个为序列的第一对赋值的参数构造函数。 创建一个 TesterProgression 类,您可以在其中演示所创建类的工作。
时间: 2023-07-16 11:14:17 浏览: 127
以下是使用 Java 编写的 Progression 类及其子类:
```java
public class Progression {
protected long current;
public Progression() {
this(0);
}
public Progression(long start) {
this.current = start;
}
public long nextValue() {
long answer = current;
advance();
return answer;
}
protected void advance() {
current++;
}
}
public class ArithProgression extends Progression {
protected long diff;
public ArithProgression() {
this(2, 1);
}
public ArithProgression(long start, long diff) {
super(start);
this.diff = diff;
}
protected void advance() {
current += diff;
}
}
public class SquareProgression extends Progression {
private long prev;
public SquareProgression() {
this(2, 200);
}
public SquareProgression(long first, long second) {
super(first);
prev = second - first;
}
protected void advance() {
long temp = prev;
prev = current - prev;
current = temp + current;
}
}
public class TesterProgression {
public static void main(String[] args) {
Progression p1 = new Progression();
System.out.print(p1.nextValue() + " ");
System.out.print(p1.nextValue() + " ");
System.out.print(p1.nextValue() + " ");
System.out.println();
ArithProgression p2 = new ArithProgression();
System.out.print(p2.nextValue() + " ");
System.out.print(p2.nextValue() + " ");
System.out.print(p2.nextValue() + " ");
System.out.println();
SquareProgression p3 = new SquareProgression();
System.out.print(p3.nextValue() + " ");
System.out.print(p3.nextValue() + " ");
System.out.print(p3.nextValue() + " ");
}
}
```
在 TesterProgression 类中,我们创建了三个不同的 Progression 对象,分别是 Progression、ArithProgression 和 SquareProgression。通过调用 nextValue() 方法,我们可以看到每个对象生成的数字序列。 Progression 对象的数字序列是简单的连续整数序列,ArithProgression 对象的数字序列是等差数列,SquareProgression 对象的数字序列是前两个元素之和的平方。
阅读全文