2 回答
TA贡献1803条经验 获得超6个赞
问题在于Tenant类中的第一个构造函数。请记住,=运算符将右操作数的值分配给左操作数中的变量。在您的情况下,代码应如下所示:
public Tenant(
String name,
String aptNum,
double fPayment,
double mPayment)
{
fullName = name;
aptNumber = aptNum;
firstPayment = fPayment;
monthlyPayment = mPayment;
}
我通常对构造函数做的是在字段之后命名参数,然后在字段分配的左侧this用于引用字段而不是参数。这最终看起来更清晰:
public Tenant(
String fullName,
String aptNumber,
double firstPayment,
double monthlyPayment)
{
this.fullName = fullname;
this.aptNumber = aptNumber;
this.firstPayment = firstPayment;
this.monthlyPayment = monthlyPayment;
}
this使用起来可能很棘手,但这是一个可以清除问题的示例。
TA贡献1876条经验 获得超5个赞
您的代码有很多问题。
的构造函数
公共租户(字符串名称,字符串 aptNum,双 fPayment,双 mPayment){ name = fullName; aptNum = aptNumber; fPayment = firstPayment; mPayment=每月付款;}
在这里,您不仅将空值分配给您的函数参数,而不是从函数参数为您的类字段分配值。
此外,当您调用函数 getFullName() 时,它将返回 null,因为 firstName 和 lastName 字段未初始化。
因此,您需要将构造函数修改为 -
public Tenant(String firstNamename, String lastName, String aptNum, double fPayment, double
mPayment){
this.firstName = firstNamename;
this.lastName = lastName;
this.aptNumber = aptNum;
this.firstPayment = fPayment;
this.monthlyPayment = mPayment;
this.fullName = getFullName();
}
同样在 for 循环中,您需要更改
list.add(new Tenant(tnt.getFullName(), tnt.getAptNumber(),
tnt.getFirstPayment(), tnt.getmonthlyPayment()));
至 -
list.add(new Tenant(tnt.getFirstName(),tnt.getLastName(), tnt.getAptNumber(),
tnt.getFirstPayment(), tnt.getmonthlyPayment()));
添加回答
举报