java返回值显示为0.0。为什么会这样?
public class employee {
String empname;
int empcode ;
double basicpay;
employee()
{
empname = "";
empcode = 0;
basicpay = 0.0;
}
employee(String n , int p , double q)
{
n = empname;
p = empcode;
q = basicpay;
}
double salarycal()
{
double salary,hra,da,allowance,totalsalary;allowance = 0;totalsalary = 0;
hra = 0.3*basicpay;
da = 0.4*basicpay;
salary = basicpay + hra + da;
if(empcode<=15 && salary<=15000)
{
allowance = 0.2*salary;
if (allowance> 2500)
allowance = allowance - (allowance-2500);
}
else
{
allowance = 1000;
}
totalsalary =salary + allowance;
return totalsalary;//the problem is that the total salary is not returned.
}
}
请说明必须对程序进行哪些更正
# 1 楼答案
它工作正常,因为你用
0
乘以所有东西给
basicpay
分配一个非零值。在构造函数中,您已经交换了参数和字段。如果你使用this
这个错误会很明显,比如此外,类名(按照惯例)应该以大写字母开头
Employee
# 2 楼答案
默认构造函数 在默认构造函数中,初始化为零,
basicpay = 0.0
,然后将所有内容乘以它,所以答案为零参数化构造函数在参数化构造函数中,赋值错误
basicpay
是double
,即默认值是0.0
,所以它也会给你零结果修改代码:
# 3 楼答案
我相信你们的一个构装师正在做反向作业。它应该看起来像: