在initPlayerOnJoin中,我需要访问玩家的余额。这很可能是一个简单的解决方案,但我仍然在学习OOP的概念。
public class Player {
private String name;
private Stock stock;
private Integer balance;
public Player(String name) {
this.setName(name);
initPlayerOnJoin(this);
}
private static void initPlayerOnJoin(Player player) {
player.addBalance(500);
}
public void addBalance(Integer amount) {
balance += amount;
}
}发布于 2015-06-21 03:31:23
public class Player {
private String name;
private Stock stock;
private Integer balance;
public Player(String name) {
this.setName(name);
initPlayerOnJoin(this);
}
//To get the balance
public Integer getBalance() { return balance; }
private static void initPlayerOnJoin(Player player) {
player.addBalance(500);
}
public void addBalance(Integer amount) {
balance += amount;
}
} 发布于 2015-06-21 03:45:05
试试这个。
public class Player {
private String name;
private Stock stock;
private Integer balance;
public Player(String name) {
this.setName(name);
initPlayerOnJoin(this);
}
//To get the balance
public Integer getBalance() { return balance; }
private static void initPlayerOnJoin(Player player) {
player.addBalance(getBalance());
}
public void addBalance(Integer amount) {
balance += amount;
}
} 发布于 2015-06-21 03:47:50
您可以实现getter和setter。但是因为player是同一类型的,即Player。即使没有getter的,,即使变量是,私有的,,你仍然可以读取数据。
private void initPlayerOnJoin(Player player) {
addBalance(player.blanace);
}但是,如果没有访问器( getter ),其他类将无法访问balance,因此您仍然可以创建getter方法。
带有getters的:
private void initPlayerOnJoin(Player player) {
addBalance(player.getBlanace()); //assuming you adding to yourself
}
public Integer getBalance(){
return balance;
}附言:我不认为将你的方法声明为static有什么意义。静态方法属于类,而不是单个实例。
何时使用私有静态方法?
通常静态方法是public,就像实用程序类中的方法一样。如果你的方法是私有的。只有当您想要使用该方法访问类本身中的某些静态变量时,才将其声明为静态。
最重要的是,所有的变量都是用包装器类声明的,而不是原始数据类型。您可以简单地使用int,double而不是Integer,Double。
https://stackoverflow.com/questions/30958039
复制相似问题