Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改单个实例中静态变量的值(Java)_Java_Class_Static_Instance - Fatal编程技术网

更改单个实例中静态变量的值(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

我才刚刚开始学习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”。但所有这些只是不断地改变整个类的值。我在论坛上发现了类似的问题,但没有一个是针对这个特定问题的

但这改变了整个班级

确切地说,您将姓氏设置为类成员,而不是实例成员。类成员不与实例绑定。因此你看到了你不想要的奇怪行为

只需去除静电

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。如果没有一个实际的例子,我很难在谷歌上用几句话来表达我的问题,而且我一定没有正确理解其他帖子中类似的问题和答案