您正在嘗試打印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