gpt4 book ai didi

java - 对象初始化(Java)

转载 作者:行者123 更新时间:2023-12-01 11:35:47 24 4
gpt4 key购买 nike

假设您有一个名为 team 的类:

public class Team {

public void Team() {
Player player1 = new Player();
Player player2 = new Player();

if (player1.getName == "") {
player1.setName = console.next();
}

else if (player2.getName == "") {
player2.setName = console.next();
}

}
}

另一个类称为玩家:

public class Player {
private String name;

public void setName(String inputName) {
name = inputName;
}

public String getName() {
return name;
}
}

如果我想为player1 设置一个名称,我可以通过调用Team() 方法来实现。但是如果我想为player2设置一个名称,它将重置玩家1的名称,因为每次调用该方法时它都会创建一个新的player1和player2对象,对吗?

所以我的问题是,如果我只想在第一次运行 Team() 方法时初始化player1和player2对象,我该如何实现呢?因为如果我将对象初始化移出 Team 类,我将无法访问 getName 和 setName。

我对此很陌生,因此任何帮助,例如实现此目的的替代方法(不使用数组),将不胜感激!谢谢。

最佳答案

您应该了解团队玩家之间的关系。

在您当前的实现中,一个Team有两个Player,我会将初始化移至构造函数:

public class Team {

private Player player1;
private Player player2;

public Team(Player player1, Player player2) {
this.player1 = player1;
this.player1 = player2;
}
}

player1player2 的初始化应该在某个驱动程序中完成,该类应该负责初始化 Player并将它们设置为一个团队。

设置/获取玩家的名字应该在Player类中完成,而不是在Team类中完成,因为Team只负责团队,而不是玩家的详细信息。

我会更改 Team 类以包含 X 个 Player,而不仅仅是 2 个,将来扩展此类会更容易。

重要提示:使用equals比较字符串,==比较引用而不是字符串的内容。

关于java - 对象初始化(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30011189/

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