单个实例中静态变量的类更改值(Java)
我才刚刚开始学习Java。假设您创建了以下类:
class FamilyMember {
static String lastName = "Doe";
String name;
int age;
}
现在,您为一个女儿创建一个实例,并将她的名字设置为,例如,Ann,等等。如果她结婚或决定更改她的姓氏,您将如何仅更改她的实例的lastName值而不是整个类
首先,我尝试创建两个实例:
FamilyMember john = new FamilyMember();
FamilyMember ann = new FamilyMember();
ann.lastName = "Stewart";
但这改变了整个班级。我尝试在FamilyMember类中创建一个方法来设置新的姓氏:
void changeLastName(String newName) {
lastName = newName;
}
甚至尝试在void之前添加“static”。但所有这些只是不断地改变整个类的值。我在论坛上发现了类似的问题,但没有一个是针对这个特定问题的
# 1 楼答案
可以删除lastname的静态修饰符,如果希望为以后可以修改的每个实例创建默认值,可以对其使用多个构造函数,或者对lastname使用setter
例如:
# 2 楼答案
确切地说,您将姓氏设置为类成员,而不是实例成员。类成员不与实例绑定。因此你看到了你不想要的奇怪行为
只需去除静电