一般部分第一:
这是我的Java 1决赛:我需要制作一个NFL季后赛模拟器。所以,我会成为一个" Team"保存" Offense"的值的对象等等。我需要一种方法来保存算法来计算谁赢得每场比赛。但是,我不知道如何将该方法应用于相应的团队。
我打算制作另一个名为" Matchup"这将支持2" Team"对象,然后比较两个团队'算法方法的值。但是,根据我的知识,我不认为你可以在另一个对象中使用对象......因此,我一直试图以丑陋的方式对所有内容进行硬编码。
有人会指出我正在制定这样一个计划的方向吗?
无论如何,关于我的直接问题:
到目前为止,这是我的一小段代码..
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);
}
}
我的另一堂课:
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值。我想这样做,以便以后我可以在给定的比赛中为2支球队使用teamA1和teamA2变量。有没有办法这样做?
如果没有,或许理想情况下,最好创建一个名为teamA1的Team对象,它保存当时我需要的任何团队的值。它需要像变量一样改变,而不是每次需要时都会生成一百万个对象(理想情况下......)我找到了方法' clone'但我不确定这是我想要的吗?
任何帮助,无论是我的直接问题,还是我的程序的总体布局,都将非常感激。谢谢!
答案 0 :(得分:2)
使团队实现可比较,这将使您能够编写compareTo方法,然后您可以基于赢取条件
答案 1 :(得分:1)
正如您的类Final_Larrabee在您的代码中拥有2个团队对象一样,您的对等类也可以容纳其他对象。
是的,您正在创建一个包含团队对象实例的匹配类的想法。
在主类中,您可以初始化2个团队对象。然后我会创建一个matchup对象,它会传递你之前创建的2个团队对象并执行一些功能。
在团队课程中,您可以实施一种方法,该方法根据团队统计数据返回分数。例如,它可以计算进攻*防御*种子或类似的东西然后返回它然后在你的匹配类中,你可以实现一个方法,如playGame()调用每个对象的getScore()方法并比较值然后返回获胜者(或者为了简单起见将其打印出来)。
关于您的代码,您使用的是关键字 static 。 Static是一个关键字,它将变量/对象/方法更改为类变量/ object / method。这意味着该类的每个实例都共享此变量。我不会用它来创建团队。如果出于某种原因需要跟踪您创建的团队对象的数量,那么使用静态(一个非常基本的示例)的示例将是一个例子。您可以在团队对象中实现静态COUNT变量,并在每次调用构造函数时将其增加1。这也可以用于为团队分配ID。
static int TEAM_COUNT = 0;
public Team()
{
this.id = ++TEAM_COUNT;
}
这将使TEAM_COUNT成为类团队的所有实例共享的值。如果你打电话
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();
}
如果您在主类中创建了所有对象,那么它们可用于该方法,因为它们是本地的。当你调用p.add()时,你可以将它们添加到Playoff类中的数组或集合中。然后你的startPlayoffs()方法可以处理已经存储在类中的对象数组。