我从来不太确定我是否正确使用了静态方法。我了解它们是如何工作的。
假设我有一个名为 Player(Java) 的类:
private int money;
private int lot;
private String piece;
private int playerNum;
public Player(String _piece, int _playerNum)
{
piece = _piece;
lot = 0;
playerNum = _playerNum;
money = 20000;
}
public int getMoney()
{
return money;
}
public int getLot()
{
return lot;
}
public String getPiece()
{
return piece;
}
还有一些其他方法+ setter ,但它们特定于我创建的玩家对象,现在假设我有一个如下所示的静态方法:
private static int numOfPlayers;
public static int numPlayers()
{
return numOfPlayers;
}
这个 numOfPlayers 方法应该放在哪里?
它应该放在我的 Player 类中吗?每次创建玩家对象的新实例时,我是否应该增加 numOfPlayers 变量?(通过构造函数)
或者,我应该在我的 Game 类中将该方法作为非静态方法,并在每次创建新的 Player 时调用该方法。
最佳答案
静态字段和方法应该表示类的无状态属性;即与特定对象无关。
但是要小心使用静态的多线程,因为必须锁定整个类而不仅仅是一个对象。这可能会导致并发瓶颈。
至于您的 numOfPlayers,您可能最终会在其他地方开发一个玩家集合,在这种情况下,该函数将是该集合上的方法,而不是玩家类中的方法。
理想情况下,至少在我看来,个人玩家不应该真正关心玩家 Collection 。因此,诸如您提出的静态函数并不是一个好的设计。
关于java - 如何有效的使用静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653002/