在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;
}
}
答案 0 :(得分:1)
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;
}
}
答案 1 :(得分:1)
试试这个......
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;
}
}
答案 2 :(得分:0)
您可以实施getter和setter。但由于玩家属于同一类型,即Player
。即使没有getter ,即使变量私有,您仍然可以读取数据。
private void initPlayerOnJoin(Player player) {
addBalance(player.blanace);
}
但是如果没有访问者(getter),其他类将无法访问balance
,因此您仍然可以创建一个getter方法。
有吸气剂:
private void initPlayerOnJoin(Player player) {
addBalance(player.getBlanace()); //assuming you adding to yourself
}
public Integer getBalance(){
return balance;
}
P.S:我不认为你的方法是static
。
静态方法属于类,而不是单个实例。
何时使用私有静态方法?
通常,静态方法与实用程序类中的方法类似public
。如果您的方法是私人的。当您想要使用该方法访问类本身中的某些静态变量时,您只需将其声明为静态。
最重要的是,所有变量都使用包装类声明,而不是基本数据类型。您只需使用int
,double
代替Integer
,Double
。