Q)
总结由s.valAtIndex(i)
给出的序列的元素。
s是Seq类型。
Seq是一个具有方法valAtIndex (integer parameter and double result)
的接口。
(a)编写接口Seq。
(b)写一个几何类,实现Seq。这样每个实例s代表几何系列,如下所示
s.valAtIndex(0), s.valAtIndex(0)
...
使得第i个元素s.valAtIndex(i)
等于基数b的第i个幂,即b ^ i。 (记得b ^ 0 = 1)
(a)
public interface Seq{
public double valAtIndex(int i);
}
(b)
public Geometric implements Seq{
Seq s;
private double b;
public Geometric(double a){
s = new Geometric(a);
this.b=a;
}
@Override
public double valAtIndex(int i){
return 0;//not sure how to do this method
}
答案 0 :(得分:7)
你的意思是:
@Override
public double valAtIndex(int i) {
return Math.pow(b, i);
}
编辑:另外,如其他答案中所述,删除Seq s;
以及构造函数中有关它的行。你最终应该拥有的是:
public class Geometric implements Seq {
private double b;
public Geometric(double a) {
this.b=a;
}
@Override
public double valAtIndex(int i){
return Math.pow(b, i);
}
}
答案 1 :(得分:0)
首先,
@Override
public double valAtIndex(int i) {
return Math.pow(b, i);
}
这会使b返回i的力量。
但是,您的代码会导致堆栈溢出异常。在构造函数中调用几何构造函数。导致对构造函数的持续调用和异常。
您需要将构造函数更改为
public Geometric(double a) {
this.b = a;
}
此外,您需要将其声明为class Geometric
而不是public Geometric