首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要player类中的Player对象

需要player类中的Player对象
EN

Stack Overflow用户
提问于 2015-06-21 03:29:11
回答 3查看 49关注 0票数 0

在initPlayerOnJoin中,我需要访问玩家的余额。这很可能是一个简单的解决方案,但我仍然在学习OOP的概念。

代码语言:javascript
复制
 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;
  }
}
EN

回答 3

Stack Overflow用户

发布于 2015-06-21 03:31:23

代码语言:javascript
复制
 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
EN

Stack Overflow用户

发布于 2015-06-21 03:45:05

试试这个。

代码语言:javascript
复制
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;
}
}  
票数 1
EN

Stack Overflow用户

发布于 2015-06-21 03:47:50

您可以实现getter和setter。但是因为player是同一类型的,即Player。即使没有getter的,即使变量是,私有的,,你仍然可以读取数据。

代码语言:javascript
复制
 private void initPlayerOnJoin(Player player) {
    addBalance(player.blanace);
 }

但是,如果没有访问器( getter ),其他类将无法访问balance,因此您仍然可以创建getter方法。

带有getters的

代码语言:javascript
复制
 private void initPlayerOnJoin(Player player) {
    addBalance(player.getBlanace());  //assuming you adding to yourself
 }
 public Integer getBalance(){
    return balance;
 }

附言:我不认为将你的方法声明为static有什么意义。静态方法属于类,而不是单个实例。

何时使用私有静态方法?

通常静态方法是public,就像实用程序类中的方法一样。如果你的方法是私有的。只有当您想要使用该方法访问类本身中的某些静态变量时,才将其声明为静态。

最重要的是,所有的变量都是用包装器类声明的,而不是原始数据类型。您可以简单地使用intdouble而不是IntegerDouble

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30958039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档