一般问题 + 如何:可以复制另一个对象值的对象?
General questions + How: object that can copy another object's values?
一般部分第一:
这是我的 Java 1 决赛:我需要制作一个 NFL 季后赛模拟器。因此,我会制作一个 "Team" 对象,其中包含 "Offense" 等值。我需要一种方法,该方法包含一种算法来计算每场比赛谁获胜。但是,我不知道如何将此方法应用到合适的团队。
我打算制作另一个名为 "Matchup" 的对象,它可以容纳 2 个 "Team" 对象,然后将 2 个团队的值与算法方法进行比较。但是,据我所知,我不认为你可以在另一个对象中使用对象......因此,我一直在尝试以一种丑陋的方式对所有内容进行硬编码。
有人能指出我形成这样一个程序的正确方向吗?
无论如何,关于我眼前的问题:
这是我到目前为止的一小段代码..
public class Final_Larrabee {
static Team pit = new Team("Steelers", "AFC", 3, 75, 70);
static Team bal = new Team("Ravens", "AFC", 6, 70, 80);
static String teamA1 = "bal";
public static void main(String[] args) {
System.out.println(+teamA1.seed);
}
}
还有我的另一个 class:
package final_larrabee;
public class Team {
String name;
String conference;
int seed;
int offense;
int defense;
boolean wcWin;
boolean divWin;
boolean conWin;
boolean alive;
public Team(String n, String c, int s, int o, int d) {
name = n;
conference = c;
seed = s;
offense = o;
defense = d;
wcWin = false; // these wins will be used in the betting part
divWin = false;
conWin = false;
alive = true; // determines if team is out of playoffs or not
}
public String getName(){
return this.name;
}
public void setName(String n){
name = n;
}
public int getConference(){
return this.seed;
}
public void setConference(String c){
conference = c;
}
public int getSeed(){
return this.seed;
}
public void setSeed(int s){
seed = s;
}
public int getOffense(){
return this.offense;
}
public void setOffense(int o){
offense = o;
}
public int getDefense(){
return this.defense;
}
public void setDefense(int d){
defense = d;
}
}
我知道这行不通,因为它正在尝试访问 teanA1 的种子值(当然不存在)。但是,我想要的只是调用 bal.seed 值。我想这样做,以便稍后我可以在给定的比赛中为两支球队使用 teamA1 和 teamA2 变量。有没有办法做到这一点?
如果没有,也许理想情况下,最好创建一个名为 teamA1 的团队对象,它保存我当时需要的任何团队的值。它需要像变量一样改变,而不是每次我需要它时都创建一百万个对象(理想情况下..)我找到了方法 'clone' 但我不确定这是我想要的吗?
任何帮助,无论是对我的直接问题,还是对我的程序的总体布局,将不胜感激。谢谢!
让团队实现可比较这将使您能够编写 compareTo 方法,然后您可以根据获胜条件设置
正如您的 class Final_Larrabee 在您的代码中持有 2 个团队对象,您的比赛 class 也可以持有其他对象。
是的,您的想法是正确的,即创建一个包含团队对象实例的对战class。
在您的主要 class 中,您可以初始化 2 个团队对象。然后我会创建一个匹配对象,它会传递您之前创建的 2 个团队对象并执行一些功能。
在您的团队中 class 您可以实施一种方法,该方法 return 是基于团队统计数据的分数。例如,它可以计算进攻 * 防守 * 种子或类似的东西 return 然后在你的比赛中 class,然后你可以实现一个调用 getScore() 的方法,例如 playGame()每个对象的方法并比较值,然后 returns 获胜者(或为简单起见将它们打印出来)。
关于您的代码,您使用了关键字 static。 Static 是一个关键字,它将 variable/object/method 更改为 class variable/object/method。这意味着 class 的每个实例都共享这个变量。我不会用它来创建团队。一个使用静态的例子(一个非常基本的例子)是,如果出于某种原因你需要跟踪你创建的团队对象的数量。您可以在团队对象中实现一个静态 COUNT 变量,并在每次调用构造函数时将其加一。这也可以用于为团队分配 ID。
static int TEAM_COUNT = 0;
public Team()
{
this.id = ++TEAM_COUNT;
}
这将使 TEAM_COUNT 成为 class 团队的所有实例共享的值。如果你打电话给
teamA.setTeamCount(0);
然后 Team 的所有其他实例也将重置为 0。
编辑:关于你的季后赛
public static void main(String args[])
{
Team team1 = new Team("parameters required here");
Team team2 = new Team("parameters required here");
Playoff p = new Playoff();
p.add(team1);
p.add(team2);
p.startPlayoffs();
}
如果您在主 class 中创建所有对象,那么它们就可以用于该方法,因为它们是本地的。当您调用 p.add() 时,您可以将它们添加到一个数组或集合中,该数组或集合位于季后赛 class 中。然后,您的 startPlayoffs() 方法可以处理已存储在 class.
中的对象数组
一般部分第一:
这是我的 Java 1 决赛:我需要制作一个 NFL 季后赛模拟器。因此,我会制作一个 "Team" 对象,其中包含 "Offense" 等值。我需要一种方法,该方法包含一种算法来计算每场比赛谁获胜。但是,我不知道如何将此方法应用到合适的团队。
我打算制作另一个名为 "Matchup" 的对象,它可以容纳 2 个 "Team" 对象,然后将 2 个团队的值与算法方法进行比较。但是,据我所知,我不认为你可以在另一个对象中使用对象......因此,我一直在尝试以一种丑陋的方式对所有内容进行硬编码。
有人能指出我形成这样一个程序的正确方向吗?
无论如何,关于我眼前的问题:
这是我到目前为止的一小段代码..
public class Final_Larrabee {
static Team pit = new Team("Steelers", "AFC", 3, 75, 70);
static Team bal = new Team("Ravens", "AFC", 6, 70, 80);
static String teamA1 = "bal";
public static void main(String[] args) {
System.out.println(+teamA1.seed);
}
}
还有我的另一个 class:
package final_larrabee;
public class Team {
String name;
String conference;
int seed;
int offense;
int defense;
boolean wcWin;
boolean divWin;
boolean conWin;
boolean alive;
public Team(String n, String c, int s, int o, int d) {
name = n;
conference = c;
seed = s;
offense = o;
defense = d;
wcWin = false; // these wins will be used in the betting part
divWin = false;
conWin = false;
alive = true; // determines if team is out of playoffs or not
}
public String getName(){
return this.name;
}
public void setName(String n){
name = n;
}
public int getConference(){
return this.seed;
}
public void setConference(String c){
conference = c;
}
public int getSeed(){
return this.seed;
}
public void setSeed(int s){
seed = s;
}
public int getOffense(){
return this.offense;
}
public void setOffense(int o){
offense = o;
}
public int getDefense(){
return this.defense;
}
public void setDefense(int d){
defense = d;
}
}
我知道这行不通,因为它正在尝试访问 teanA1 的种子值(当然不存在)。但是,我想要的只是调用 bal.seed 值。我想这样做,以便稍后我可以在给定的比赛中为两支球队使用 teamA1 和 teamA2 变量。有没有办法做到这一点?
如果没有,也许理想情况下,最好创建一个名为 teamA1 的团队对象,它保存我当时需要的任何团队的值。它需要像变量一样改变,而不是每次我需要它时都创建一百万个对象(理想情况下..)我找到了方法 'clone' 但我不确定这是我想要的吗?
任何帮助,无论是对我的直接问题,还是对我的程序的总体布局,将不胜感激。谢谢!
让团队实现可比较这将使您能够编写 compareTo 方法,然后您可以根据获胜条件设置
正如您的 class Final_Larrabee 在您的代码中持有 2 个团队对象,您的比赛 class 也可以持有其他对象。
是的,您的想法是正确的,即创建一个包含团队对象实例的对战class。
在您的主要 class 中,您可以初始化 2 个团队对象。然后我会创建一个匹配对象,它会传递您之前创建的 2 个团队对象并执行一些功能。
在您的团队中 class 您可以实施一种方法,该方法 return 是基于团队统计数据的分数。例如,它可以计算进攻 * 防守 * 种子或类似的东西 return 然后在你的比赛中 class,然后你可以实现一个调用 getScore() 的方法,例如 playGame()每个对象的方法并比较值,然后 returns 获胜者(或为简单起见将它们打印出来)。
关于您的代码,您使用了关键字 static。 Static 是一个关键字,它将 variable/object/method 更改为 class variable/object/method。这意味着 class 的每个实例都共享这个变量。我不会用它来创建团队。一个使用静态的例子(一个非常基本的例子)是,如果出于某种原因你需要跟踪你创建的团队对象的数量。您可以在团队对象中实现一个静态 COUNT 变量,并在每次调用构造函数时将其加一。这也可以用于为团队分配 ID。
static int TEAM_COUNT = 0;
public Team()
{
this.id = ++TEAM_COUNT;
}
这将使 TEAM_COUNT 成为 class 团队的所有实例共享的值。如果你打电话给
teamA.setTeamCount(0);
然后 Team 的所有其他实例也将重置为 0。
编辑:关于你的季后赛
public static void main(String args[])
{
Team team1 = new Team("parameters required here");
Team team2 = new Team("parameters required here");
Playoff p = new Playoff();
p.add(team1);
p.add(team2);
p.startPlayoffs();
}
如果您在主 class 中创建所有对象,那么它们就可以用于该方法,因为它们是本地的。当您调用 p.add() 时,您可以将它们添加到一个数组或集合中,该数组或集合位于季后赛 class 中。然后,您的 startPlayoffs() 方法可以处理已存储在 class.
中的对象数组