您正在尝试打印Object
而不是int a
。当您传递一个对象System.out.println()
时,您默认呼叫.toString()
方法,该方法尝试给出对象的文本表示形式。你得到的背面是Object-Type
@
HexValue of the object hashcode
hense的[email protected]
现在,你知道你需要呼吁int
,为什么你让这件事印刷,还有第二个问题。您在构造函数中创建并初始化变量int a
,这意味着您不能在其他任何地方使用它。你所要做的就是外面创建它每一次初始化您调用构造函数,像这样的:System.out.println(new ConfirmDialog("Question?").a);
需要注意的是::如果你实例ConfirmDialog()
int a;
public ConfirmDialog(String quest) {
int a = JOptionPane.showConfirmDialog(null,
quest,
"Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
}
现在你可以使用它打印像这样:
Object b = new ConfirmDialog("Question?");
,那么你需要以投b
到ConfirmDialog
到ACCE SS a
,像这样:
System.out.println(((ConfirmDialog)b).get());
或者你可以做这样的:
ConfirmDialog b = new ConfirmDialog("Question?");
并调用System.out.println(b.a);
但是总的来说,你应该有你的私有变量的访问和使用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());
希望这有助于。
你是什么意思,你没有得到Integer?你的意思是'a'在你使用'System.out.println(b);'时没有被打印出来? – qbit 2014-08-29 17:59:56
是的,这是我的输出:ConfimDialog @ afe1bc5 – coo12 2014-08-29 18:02:35
没有return语句。你做了一个'a'但没有做任何事情。 – csmckelvey 2014-08-29 18:11:22