Method parameter mismatch: Required double, no argument passed

浪尽此生 提交于 2019-12-31 07:43:05

问题


I am almost complete but when I compile I get the error "Method getUserTax in class IncomeTax cannot be applied to given types; required double; found: no arguments; reason: actual and formal argument lists differ in length" I've gone over my code multiple times and I cannot find where the error is located. It is near the end of the code on the line "userTax = test.getUserTax();

import java.util.Scanner;  //Needed for the Scanner Class
/**
 * Write a description of class IncomeTax here.
 * 
 * @author CD
 * 11/30/2012
 * The IncomeTax class determines how much tax you owe based on taxable income.
 */
public class IncomeTax
{
    private int income;

    /** 
     * The constructor accepts an argument for the income field.
     */
    public IncomeTax(int i)
    {
        income = i;
    }
    /**
    * The setIncome method accepts an argument for the income field.
    */
    public void SetIncome(int i)
    {
        income = i;
    }
    /**
     * The getIncome method returns the income field.
     */
    public double getIncome()
    {
        return income;
    }
    /**
     * The getUserTax returns the tax for the income.
     */
    public static double getUserTax(double income)
    {
        double userTax = 0.10;
        if (income > 250000.0) {
            userTax = 0.35;
        } else if(income > 130000.0) {
            userTax = 0.33;
        } else if(income > 60000.0) {
            userTax = 0.28;
        } else if(income > 30000.0) {
            userTax = 0.25;
        } else if(income > 10000.0) {
            userTax = 0.15;
        }
    return userTax;
}
/**
 * This program uses the IncomeTax class to determine the Income tax for the user's 
income.
 */
public static void main(String [] args)
{
    int userIncome; //To hold taxable income
    double userTax; //To hold tax

    //Create a Scanner object to read input.
    Scanner keyboard = new Scanner(System.in);

    //Get the Personal Income.
    System.out.print("Enter your taxable income and" + "I will tell you the income tax:");
    userIncome = keyboard.nextInt();

    //Create an IncomeTax object with the numeric score.
    IncomeTax test = new IncomeTax(userIncome);

    //Get the income tax.
    userTax = test.getUserTax();

    //Display the income tax.
    System.out.print("Your income tax is" + test.getUserTax());
}

回答1:


userTax = test.getUserTax();

You need to pass double value as parameter to this call. Your getUserTax method defined as double type parameter required.

public static double getUserTax(double income)

Example:

userTax = test.getUserTax(10.0); //Here 10.0 is just for example.




回答2:


Just change this method signature: -

public static double getUserTax(double income)

to: -

public static double getUserTax()

You don't need to pass any income parameter, as that you are already having income as instance attribute in IncomeTax class. And when you invoke this method on an IncomeTax instance: -

test.getUserTax();

the income used in the method is nothing but this.income, which references the instance attribute.



来源:https://stackoverflow.com/questions/13654374/method-parameter-mismatch-required-double-no-argument-passed

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!