我的日食计算器有问题吗?

时间:2015-06-18 12:51:50

标签: eclipse

public class TaxReturn {
private double rate1= 0.10;
private double rate2=0.25;
private double single_limit = 32000;
private double married_limit = 64000;

private double income;
private int status;

public static int married=2;
public static int single=1;

public TaxReturn(double inc, int stat){
double income = inc;
int status=stat;
}

public double getTaxi(){
    double tax1=0;
    double tax2=0;
    if(status==single){
        if(income<=single_limit)
            tax1=rate1*income;
        else{
            tax1=rate1*single_limit;
            tax2=rate2*(income-single_limit);
        }
    }
    else{
        if(income<=married_limit)
            tax1=rate1*income;
        else
            tax1=rate1*married_limit;
            tax2=rate2*(income-married_limit);

        }
    return tax1+tax2;
}
}


import java.util.Scanner;
public class TaxCalculator {

    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    System.out.println("eneter income; avoid commas");
    double income = sc.nextDouble();

    System.out.println("are you married; type Y or N");
    String status=sc.next();

    int statuss;
    if (status.equalsIgnoreCase("y"))
        statuss=TaxReturn.married;
    else 
        statuss=TaxReturn.single;
TaxReturn tr = new TaxReturn(income, statuss);
System.out.println("your tax is: " + tr.getTaxi());
}
}

我一直得到-16000的答案。我不知道我的代码是错误还是软件有问题。这段代码是从书中复制的。 Iva也遇到了其他代码的问题。任何帮助,将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

您的构造函数不正确。 重写如下

public TaxReturn(double inc, int stat){
 income = inc;
 status = stat;
}

通过声明收入和状态变量的类型,您将它们设置为构造函数的本地。