我正在用Java创建一个简单的GUI游戏(数字猜测)。
显然,我有一个名为Give Up
的按钮。
当我点击Give Up
按钮时,我想在textarea上显示答案。
但是,targetNumber
变量被声明为私有:
public class GameUtility {
private String targetNumber = "2543";
//rest of the code
}
class GiveUpButton implements ActionListener { //Inner class
public void actionPerformed(ActionEvent gEvent) {
GameUtility utility = new GameUtility();
textArea.append(utility.targetNumber); //How to access the value of targetNumber?
}
}
如何访问私有变量的值?
答案 0 :(得分:2)
private
修饰符表示您无权直接访问该属性。但也许更重要的是,private
暗示您不应该直接访问该属性。创建getter
以提供对外部类的访问:
public class GameUtility {
private String targetNumber = "2543";
public String getTargetNumber() {
return targetNumber;
}
//rest of the code
}
class GiveUpButton implements ActionListener {
public void actionPerformed(ActionEvent gEvent) {
GameUtility utility = new GameUtility();
textArea.append(utility.getTargetNumber());
}
}
答案 1 :(得分:2)
要创建托管bean accessible
的状态,您需要为该状态添加setter
和getter
方法。
添加了setter和getter(访问器)方法后,您可以更新并访问private
实例的值。代码应如下所示:
public class AccessorExample {
private String attribute;
public String getAttribute() {
return attribute;
}
public void setAttribute(String attribute) {
this.attribute = attribute;
}
}
让我们从类之外的访问private
实例中的信息,只有当他们通过提供的机制询问时我们才会调用方法。要求对象显示有关自身信息的机制我们可以调用getter
方法(例如accessorExample.getAttribute();
)。
答案 2 :(得分:1)
推荐的方法是创建适当的Getters
和Setters
。
public class AccessorExample {
private String attribute;
public String getAttribute() {
return attribute;
}
public void setAttribute(String attribute) {
this.attribute = attribute;
}
}
大多数IDE都支持直接生成getters
和setters
。