早上好,我使用以下构造函数代码,出于某种原因," position"每次创建新对象时,变量都设置为null。
这是我的班级代码
public class Employee
{
private String name;
private int idNumber;
private String department;
private String position;
public Employee(String nam, String depart, String posi, int id)
{
name = nam;
department = depart;
posi = position;
idNumber = id;
}
}
这就是我用来创建对象的行。
Employee sMeyers = new Employee("Susan Meyers", "Accounting", "Vice President", 47899);
答案 0 :(得分:1)
应该是
position = posi;
而不是
posi = position;
你在这里为一个不可变参数(position
)分配一个空变量(posi
)。
答案 1 :(得分:1)
其他答案已经说过你的错误是
posi = position
Luiggi Mendoza也发表评论说你应该使用"这"!
我只想给你一个完整的例子来说明它应该如何完成。
public class Employee
{
private String name;
private int idNumber;
private String department;
private String position;
public Employee(String name, String department, String position, int idNumber)
{
this.name = name;
this.department = department;
this.position = position;
this.idNumber = idNumber;
}
}
通过这种方式显式访问您的类变量也可以避免编写新的变量名称,例如" nam"和" pos"。
答案 2 :(得分:0)
对于构造函数参数posi
,您希望获取该值并将其分配给其中一个类字段,在此示例中为position
。现在,您正在做的是将position
(为空)分配给posi
。所以你用null来覆盖你的参数,而不是用它做任何事情。
您想要做的是以下内容:
position = posi;
将构造函数参数("Vice President
)分配给类字段position
。
请记住,右侧的变量分配给左侧的变量。
答案 3 :(得分:0)
多数民众赞成是因为你这句话:
posi = position;
将其更改为
position =posi;
使用“this”指针来避免这些错误。快乐编码!!