Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一般问题&x2B;如何:可以复制另一个对象的对象';s的价值观?_Java_Class_Object_Methods - Fatal编程技术网

Java 一般问题&x2B;如何:可以复制另一个对象的对象';s的价值观?

Java 一般问题&x2B;如何:可以复制另一个对象的对象';s的价值观?,java,class,object,methods,Java,Class,Object,Methods,第一部分: 这是我的Java1决赛:我需要制作一个NFL季后赛模拟器。所以,我会制作一个“团队”对象,它包含“进攻”之类的值。我需要一种方法来计算每场比赛谁赢。但是,我不知道如何将该方法应用到适当的团队中 我将制作另一个名为“Matchup”的对象,它将容纳两个“Team”对象,然后用算法方法比较这两个团队的值。但是,据我所知,我认为你不能在另一个物体内使用物体。。。因此,我一直试图用一种丑陋的方式来硬编码每件事 有没有人能为我指出制定这样一个计划的正确方向 无论如何,关于我眼前的问题: 这是我

第一部分:

这是我的Java1决赛:我需要制作一个NFL季后赛模拟器。所以,我会制作一个“团队”对象,它包含“进攻”之类的值。我需要一种方法来计算每场比赛谁赢。但是,我不知道如何将该方法应用到适当的团队中

我将制作另一个名为“Matchup”的对象,它将容纳两个“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的团队对象,它保存我当时需要的任何团队的值。它需要像变量一样改变,而不是每次我需要它时就生成一百万个对象(理想情况下…)我找到了“克隆”方法,但我不确定这是我想要的吗


任何帮助,无论是对我的直接问题,或我的计划的总体布局,将不胜感激。谢谢

使团队实现可比性这将使您能够将compareTo编写为方法,然后您可以将您赢的条件设置为基于

正如您的类Final\u Larrabee在代码中包含2个团队对象一样,您的Matchip类也可以包含其他对象

是的,创建一个包含团队对象实例的matchup类的想法是正确的

在主类中,可以初始化2个团队对象。然后,我将创建一个matchup对象,它将传递您之前创建的两个团队对象,并执行一些功能

在您的团队类中,您可以实现一个方法,该方法根据团队统计数据返回分数。例如,它可以计算进攻*防守*种子或类似的东西并返回它,然后在您的match类中,您可以实现一个方法,例如playGame(),它调用每个对象的getScore()方法并比较值,然后返回赢家(或者为了简单起见打印出来)

关于代码,您使用的是关键字static。Static是将变量/对象/方法更改为类变量/对象/方法的关键字。这意味着类的每个实例都共享这个变量。我不会用它来创建团队。如果出于某种原因需要跟踪所创建的团队对象的数量,则可以使用static(一个非常基本的示例)。您可以在团队对象内实现一个静态计数变量,并在每次调用构造函数时将其增加一个。这也可用于为团队分配ID

static int TEAM_COUNT = 0;

public Team()
{
   this.id = ++TEAM_COUNT;
}
这将使团队计数成为一个由类团队的所有实例共享的值。如果你打电话

teamA.setTeamCount(0); 
然后团队的每个其他实例也将重置为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()时,可以将它们添加到季后赛类中的数组或集合中。然后,startPlayoffs()方法可以处理已存储在类中的对象数组。

可以将对象放入其他对象中。什么告诉你你不能那样做?你试过了吗?我在谷歌上搜索过,人们说你不行。我也试过了。但是他们可能错了,我可能做错了。谢谢你,我会研究你所有的建议,看看我是否能弄明白。但是,我需要组成12支队伍,需要匹配的队伍必须根据哪些队伍还活着而改变。例如,我可以硬编码NE在超级碗赛中对阵西雅图,但我需要它是剩下的两支球队中的任何一支。我认为要做到这一点,我需要一些变量/if语句来确定谁还活着。有什么好主意吗?那你最好还是开一个季后赛班,而不是比赛班。在main方法中,您可以创建12个Team类实例,并将它们添加到类型为Playoff的对象中。然后可以调用playoff.startplayouffes()并在该方法中对团队集合进行一些处理。例如,您可以创建一个循环,该循环一直运行到只剩下一支球队,并不断比较阵列中的球队,将一支球队淘汰出季后赛。当只剩下一支队伍时,您可以打印出获胜队伍。附言:如果这有什么帮助,请投票我不能投票,因为我没有它所说的声誉,但我点击了你答案上的复选标记。再次感谢。最后一件事:我怎样才能让球队从我的主队进入我的新比赛(或季后赛)课程?示例:Team home=Final_Larrabee.pit;//我已经编辑了我的答案,给你一个正确的方向。您现在需要构建季后赛类,该类存储一个数组,或者团队的某种形式的集合。在startplayouffs()方法中,您可以处理这个问题。