gpt4 book ai didi

java - 如何有效的使用静态方法?

转载 作者:行者123 更新时间:2023-12-01 23:48:30 24 4
gpt4 key购买 nike

我从来不太确定我是否正确使用了静态方法。我了解它们是如何工作的。

假设我有一个名为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com