gpt4 book ai didi

java - 处理同一对象类型的多个实例时出现问题

转载 作者:行者123 更新时间:2023-12-01 19:12:43 26 4
gpt4 key购买 nike

我正在尝试创建多个名为“问题”的相同自定义对象类型的实例。 Question 类具有 getter 函数来返回问题和问题的答案。如果我只创建一个问题对象,则一切正常,但如果我在调用 getter 函数时创建两个具有不同名称和变量的问题对象,则始终返回最近初始化的问题对象的值。

这就是我的意思:

Question q1 = new Question("What is the capital of France", "Paris");
Question q2 = new Question("What is the capital of England", "London");

System.out.println(q1.getQuestion());
System.out.println(q2.getQuestion());

在控制台中显示

What is the capital of England
What is the capital of England

我希望显示两个不同的问题。

有人能指出我正确的方向吗?

最佳答案

没有看到代码,我只能猜测,但看起来 Question 类有一个静态变量而不是成员变量。

这就是为什么有些人主张始终在变量前面加上 this.questionthis.answer,这样您就知道您引用的是成员变量,而不是任何其他变量。它会很快指出这样的错误。

如果你有

class Question {
private static String question;
private static String answer;

public Question(String q, String a) {
question = q;
answer = a;
}

public String getQuestion() { return question; }
public String getAnswer() { return answer; }

}

删除静态,这样就可以了

class Question {
private String question;
private String answer;

public Question(String q, String a) {
question = q;
answer = a;
}

public String getQuestion() { return question; }
public String getAnswer() { return answer; }

}

关于java - 处理同一对象类型的多个实例时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com