【问题标题】:Using a private attribute through its getter method in another method of the same class在同一类的另一个方法中通过其 getter 方法使用私有属性
【发布时间】:2014-06-29 11:38:41
【问题描述】:

我对 OOP 的概念非常陌生,对于一个项目,我必须制作一个有 2 名玩家的纸牌游戏。我创建了一个名为 Player 的类,它有一个名为 playerNumber 的私有属性,还有许多其他属性。我创建了一个名为 playTurn 的方法,它需要使用 Player 的私有属性,例如 playerNumber。

我尝试这样使用它:

public static void playTurn(){  
    System.out.println("It's Player " + this.getPlayerNumber() + "'s turn.");
}

但 Eclipse 会要求我将 getter 方法 getPlayerNumber() 设为静态或私有属性 playerNumber 静态。

是否可以保留没有静态的私有 PlayerNumber 并且仍然在另一个方法中使用该属性,但在同一个类中?

【问题讨论】:

  • 你应该有一个类用于玩家信息,例如它的号码,另一个类用于你的 playTurn 方法。您两次创建一个新玩家以获得两个玩家,并在 Player 类中使用您的 getter 获取他们的属性,例如 currentPlayer.getPlayerNumber
  • 您的问题是thisstatic 方法中没有意义,因为this 表示正在运行当前方法的对象,而static 表示该方法是不在任何特定对象上运行。很可能,您希望 playTurn 不是 static

标签: java oop getter


【解决方案1】:

您不能从静态上下文中引用非静态方法或变量。

看起来 playTurn() 不应该是静态的,因为它需要访问 Player 的实例。

this回答

【讨论】:

  • 我认为 Rob 是对的。 playTurn() 不应该是静态的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多