私のコードが基づいている問題は、次の Web サイトにあります。
したがって、基本的に、私のコードはブール値に対して機能しますが、次のメソッドの場合: percentFiltered、私のコードは凶暴になります。
上記のリンクからコードを送信すると、出力は次のようになります。
percentFiltered (初期): 0.0
process(0) プロセスの戻り値: true percentFiltered: 100.0 super.process called
: falseprocess(0) プロセスの戻り値: true percentFiltered: 200.0
ただし、これは正しい 出力です。
percentFiltered (初期): 0.0
process(0) プロセスの戻り値: true percentFiltered: 100.0 super.process called
: falseprocess(0) プロセスの戻り値: true percentFiltered: 100.0
したがって、私は予想される答えから 100.0 ずれていることに注意してください (私は 200.0 で、彼らは 100.0 です)。だから今、私は困惑しています。私はまだこの継承に慣れていないので、どこで間違ったのかわかりません。私が書いて提出したコードは次のとおりです。
public class FilteredAccount extends Account {
private int nonzeroTransCnt = 1;
private int zeroTransCnt;
public FilteredAccount(Client c) {
super(c);
}
public double percentFiltered() {
return zeroTransCnt / nonzeroTransCnt * 100.0;
}
public boolean process(Transaction t) {
if (t.value() == 0) {
zeroTransCnt++;
super.__processCalled = false;
return true;
}
else {
nonzeroTransCnt++;
super.__processCalled = true;
return t.value() > -100 && t.value() < 1000000;
}
}
}
上記のリンクをクリックすると、Accountという拡張ファイルがあります。よろしくお願いします。