我不知道为什么它说我有错误但这是确切的错误消息“线程中的异常”主“java.lang.Error:未解决的编译问题:
at org.com1027.cw1.rc00182.Salary.main(Salary.java:8)"
以下是代码:
package org.com1027.cw1.rc00182;
public class Salary {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public double salary; //this is the field I have created within the Salary class with type double
public Salary() { //this is the default constructor
}
public double getsalary() { //Here is the getter for salary class with a return
return salary;
}
public double setsalary() { //Here is setter for the salary class with a return
return salary;
}
public int calculateTax()
{
int salary = 16475; //here I am stating the salary using an integer because it is number related
int taxSalary = 7035; //here I am declaring the result so I can use it later
int personalAllowance = 9440; //here I am declaring the personal allowance is equal to 9440
int taxThreshold = 32010; //this is the tax threshold value I have put in for later use when continuing the if statement
int lowerTax = 20; //this is the lower tax and because the value holds a decimal I have used a type double. this will come to use when continuing the if statement calculating the tax
int higherTax = 40; //this is the higher tax and again used a type double due to the use of a number holding a decimal
// above are the 6 variables I have created for the if statement below
if (salary > personalAllowance){ //here I am saying if the salary is more than 9440 (personal allowance) then..
taxSalary = salary-personalAllowance; //this is saying the salary (16475) minus personal allowance gives the result (7035) which is the taxable salary
taxSalary = 0;
}
if (taxSalary < taxThreshold) {
taxSalary = taxSalary * lowerTax;
}
else {
taxSalary = (taxSalary - taxThreshold) * higherTax + taxThreshold;
}
}
还说我在底部的支架上有一个错误,说我需要在那里放另一个但我无法找到它丢失的地方。
答案 0 :(得分:0)
您的代码包含错误。你强迫编译器编译它。但它不能。所以当你尝试运行它时。它将停止并说编译的Java文件无效。我不打算在代码中搜索你的错误。使用像Eclipse这样的IDE,它会告诉你错误的位置以及问题所在。
答案 1 :(得分:0)
你的setSalary()是不是应该做任何事情,还是有其他代码,你忘了包含它?
一般来说,setter应如下所示,但显然你可以让它返回一个值或一个布尔值:
public void setsalary(double salary) { // setSalary would have been more readable
this.salary = salary;
}
编辑:正如其他人指出的那样,你缺少一个班级支架。我已经为它提供了一个可能的位置。
else {
taxSalary = (taxSalary - taxThreshold) * higherTax + taxThreshold;
}
return taxSalary; // <--- missing a return statement here
}
} //&lt; ---在这里缺少一个课程结束括号。