【发布时间】:2017-10-13 15:04:53
【问题描述】:
我需要创建一个应用程序,通过接受用户的年收入和婚姻状况(此处分别存储为“字符串婚姻”和“双重收入”来计算纳税义务。然后我需要从我的主类传递这些变量,“ ShowTax”到一个单独的类“Tax”,它计算应纳税额并将该值返回给主类以输出给用户。我有 95% 的把握,我已经正确设置了所有内容,但我不断收到此错误:
Tax 类中的构造函数税不能应用于给定类型:
必填:无参数
找到:字符串,双精度
原因:实际参数列表和形式参数列表的长度不同
我不确定我做错了什么......
这是我的 ShowTax 课程中的相关代码:
import java.util.Scanner;
public class ShowTax {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Please enter Annual Income: $");
double income = sc.nextDouble();
while (income < 0) {
System.out.print("ERROR: Income cannot be negative: ");
income = sc.nextDouble();
}
System.out.print("Please Enter Marital Status (S/M): ");
String marital = sc.next();
while (!("S".equals(marital) || "s".equals(marital) || "M".equals(marital) || "m".equals(marital))) {
System.out.print("ERROR: Try Again: ");
marital = sc.next();
if ("S".equals(marital) || "s".equals(marital) || "M".equals(marital) || "m".equals(marital)){
break;
}
}
Tax myTax = new Tax(marital, income);
}
}
这是我的 Tax 课程中的代码:
public class Tax{
public double Tax(String marital, double income)
{
double taxRate;
double liability=0;
if (("s".equals(marital)||"S".equals(marital))){
if (income >= 49002){
taxRate=75;
liability = (income - (income*(taxRate/100)));
}
else if (income > 15000){
taxRate=50;
liability = income - (income*(taxRate/100));
}
else {
taxRate=25;
liability = income - (income*(taxRate/100));
}
}
else if ("m".equals(marital)||"M".equals(marital)){
if (income >= 49002){
taxRate=74;
liability = income - (income*(taxRate/100));
}
else if (income > 15000){
taxRate=49;
liability = income - (income*(taxRate/100));
}
else {
taxRate=24;
liability = income - (income*(taxRate/100));
}
}
return liability;
}
}
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
public double Tax(...)不是构造函数。这是一个名为Tax的方法,它返回一个double。 -
public double Tax(...)不是构造函数。 -
构造函数没有返回类型
标签: java compiler-errors