更改单个实例中静态变量的值(Java)
我才刚刚开始学习Java。假设您创建了以下类:更改单个实例中静态变量的值(Java),java,class,static,instance,Java,Class,Static,Instance,我才刚刚开始学习Java。假设您创建了以下类: class FamilyMember { static String lastName = "Doe"; String name; int age; } 现在,您为一个女儿创建一个实例,并将她的名字设置为,例如,Ann,等等。如果她结婚或决定更改她的姓氏,您将如何仅更改她的实例的lastName值而不是整个类 首先,我尝试创建两个实例: FamilyMember john = new FamilyMember(); Fam
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”。但所有这些只是不断地改变整个类的值。我在论坛上发现了类似的问题,但没有一个是针对这个特定问题的
但这改变了整个班级
确切地说,您将姓氏设置为类成员,而不是实例成员。类成员不与实例绑定。因此你看到了你不想要的奇怪行为
只需去除静电
private String lastName = "Doe";
但这改变了整个班级
确切地说,您将姓氏设置为类成员,而不是实例成员。类成员不与实例绑定。因此你看到了你不想要的奇怪行为
只需去除静电
private String lastName = "Doe";
可以删除lastname的静态修饰符,如果希望为以后可以修改的每个实例创建默认值,可以对其使用多个构造函数,或者对lastname使用setter e、 g:
可以删除lastname的静态修饰符,如果希望为以后可以修改的每个实例创建默认值,可以对其使用多个构造函数,或者对lastname使用setter e、 g:
删除
lastname
Yes的static
modifier,使该字段static
毫无意义。这是:我在论坛上发现了类似的问题,但没有一个是关于这个问题的。
没有任何意义,因为这个问题在整个网站和大多数Java教程介绍中都得到了很好的解决。@HovercraftFullOfEels My bad。如果没有一个实际的例子,我很难在谷歌上用几句话来表达我的问题,而且我一定没有正确理解其他线程中的类似问题和答案。请删除lastname的static
修改器,使该字段static
毫无意义。这是:我在论坛上发现了类似的问题,但没有一个是关于这个问题的。
没有任何意义,因为这个问题在整个网站和大多数Java教程介绍中都得到了很好的解决。@HovercraftFullOfEels My bad。如果没有一个实际的例子,我很难在谷歌上用几句话来表达我的问题,而且我一定没有正确理解其他帖子中类似的问题和答案