gpt4 book ai didi

java - 如何从对象中获取值

转载 作者:行者123 更新时间:2023-11-30 07:06:34 24 4
gpt4 key购买 nike

我需要知道如何从对象中获取值。例如:

public ConfirmDialog(String quest) {
int a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}

当我返回这个对象时,我没有得到整数。有人可以给我一个解释吗? Google 没有帮助我..

Object b = new ConfirmDialog("Question?");
System.out.println(b);

最佳答案

您正在尝试打印一个 Object 而不是 int a。当您在 System.out.println() 传递一个对象时,您默认调用 .toString() 方法,该方法尝试给出对象的文本表示。你得到的是 Object-Type @ HexValue of the object hashcode 然后 ConfimDialog@afe1bc5

既然您知道需要调用 int 以及打印此内容的原因,那么还有第二个问题。您在构造函数中创建并初始化变量 int a,这意味着您不能在其他任何地方使用它。您需要做的是在外部创建它并在每次调用该构造函数时对其进行初始化,如下所示:

int a;
public ConfirmDialog(String quest) {
int a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}

现在您可以使用以下命令打印它:System.out.println(new ConfirmDialog("Question?").a);

注意:如果您像这样实例化 ConfirmDialog():

Object b = new ConfirmDialog("Question?");

然后您需要将 b 转换为 ConfirmDialog 以访问 a,如下所示:

System.out.println(((ConfirmDialog)b).get());

或者你可以这样做:

ConfirmDialog b = new ConfirmDialog("Question?"); 然后调用 System.out.println(b.a);

一般而言,您应该拥有对变量的私有(private)访问权并使用 getter 方法。例如:

private int a;
public ConfirmDialog(String quest) {
int a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}

public int getA(){
return a;
}

现在如果你想访问a,你可以这样做:
System.out.println(new ConfirmDialog("Question?").getA());

希望这对您有所帮助。

关于java - 如何从对象中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25573710/

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