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());
}
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.
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