0

Ok。これが状況です。以下に示すように、クラスに calculateTax メソッドがあります。

しかし、私は大きな間違いを犯していたことに気づきました。「税金」は、実際にはクラスの開始時にフィールドとして作成されています。

private double tax;

これは実際には変数である必要があります。

しかし、メソッドpublic double calculateTax(double tax)でローカル変数として作成すると機能しますが、それに対してテストを実行すると失敗します。私はメッセージを受け取ります

The method calculateTax(double) in the type Salary is not applicable for the arguments ()

それで、どこが間違っているのですか?

メソッドの名前を変更せずに税変数 (まだ返される可能性があります) を作成するにはどうすればよいですか? メソッド「calculateTax」はそのままにしておく必要があります。では、「税」変数はどこでどのように作成すればよいのでしょうか? 前もって感謝します!

public double calculateTax() {

if (this.salary <= personalAllowance) { // If the salary is less
  // £9440 (personal allowance) and below then no tax will be applied.

}

else if (this.salary <= taxThreshold) { // Else if the salary is less than or equal to the
  // tax threshold then do the following:
  double taxableSalary = this.salary - personalAllowance; // Salary take away the personal allowance
  // equals the taxable salary.
  this.tax = taxableSalary * 0.2; // The tax equal the taxable salary * 0.2 (20%)
}

else if (this.salary > 32010) {

  double basicRate = taxThreshold * 0.2; // The basic rate tax is the tax threshold * 0.2
  double difference = this.salary - taxThreshold; // The difference is the salary - the tax threshold
  double highTax = difference - personalAllowance; // The high tax to be calculated is the difference
  // take away personal allowance.
  double highRate = highTax * 0.4; // The high rate tax is the high tax * the high tax value (40%)

  this.tax = highRate + basicRate; // Total tax is the high rate tax (40%) + the basic rate tax (20%)

}
return tax;
4

1 に答える 1

0

あなたの税変数は問題ありません。

calculateTax()コンパイラは、メソッドが給料を表す double の引数を期待していると考えます。(私は思う - 多分税率?) 例えば calculateTax(56789.12);

あなたが投稿したコードにはそれが見られませんが、何かが不完全です。

于 2013-10-16T16:55:43.097 に答える