Java 字符串更改为null
早上好,我正在使用下面的构造函数代码,出于某种原因,“position”变量在每次创建新对象时都设置为null 这是我的班级代码Java 字符串更改为null,java,Java,早上好,我正在使用下面的构造函数代码,出于某种原因,“position”变量在每次创建新对象时都设置为null 这是我的班级代码 public class Employee { private String name; private int idNumber; private String department; private String position; public Employee(String nam, String depart, St
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);
应该是
position=posi代码>
而不是
posi=位置代码>
您在这里将一个空变量(position
)赋给一个不可变参数(posi
)。对于构造函数参数posi
,您希望获取该值并将其赋给在本例中为position
的类字段之一。现在,您要做的是将位置
(为空)分配给posi
。所以你用null覆盖了你的参数,而不是用它做任何事情
您希望执行以下操作:
position = posi;
它将构造函数参数,即“副总裁
分配给类字段位置
请记住,右侧的变量被分配给左侧的变量。这是因为您使用了以下语句:
posi = position;
换成
position =posi;
使用“this”指针避免这些错误。愉快地编码!!其他答案已经说明您的错误是
posi = position
Luiggi Mendoza也发表评论说,你应该使用“this”
我只想给你们一个完整的例子,说明应该如何做
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”)的麻烦