在Player类中需要玩家对象

时间:2015-06-20 19:29:11

标签: java oop

在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;
  }
}

3 个答案:

答案 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。如果您的方法是私人的。当您想要使用该方法访问类本身中的某些静态变量时,您只需将其声明为静态。

最重要的是,所有变量都使用包装类声明,而不是基本数据类型。您只需使用intdouble代替IntegerDouble