【发布时间】: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
-
您的问题是
this在static方法中没有意义,因为this表示正在运行当前方法的对象,而static表示该方法是不在任何特定对象上运行。很可能,您希望playTurn不是static。