java - 通过方法在不同类之间调用变量

标签 java arrays variables

我正在为我的计算机科学课做作业。

我已经完成了相当多的作业,但是我在从类中提取单个变量时遇到了一些麻烦。我们刚刚进入类和对象,这是我们关于它们的第一个任务,所以我不完全理解它。到目前为止,我已经能够打印出球队,但我无法得出个人的胜负、OTL 和 OTW,以便我可以计算每个团队是否是获胜团队。

到目前为止我所做的是创建一个名为 winningRecord 和 getPoints 的类,它返回一个 boolean 值来决定它是否是获胜的团队。 (获胜球队的公式是积分 > 玩过的场数 * 1.5(因为这是一个偶数记录)。

我不知道如何提取统计数据,因为它必须写在 HockeyTeam 类中。我已经设置它以便构造函数公开设置变量以便可以访问,但就访问它们而言,我很困惑。

至于一旦我能够访问它们就将它们存储起来,我是否会制作一个并行方法,让每个团队都有积分,每个箱子只分配一个数字?

这里是所有的代码,感谢您的观看。

public class A1Q2fixed {
    public static void main(String[] parms) { // main method
        processHockeyTeams();
    }

    /*****************************/

    public static void processHockeyTeams() { // processing method
        boolean[] winningRecord;
        HockeyTeam[] hockeyTeams;

        hockeyTeams = createTeams();
        printTeams(hockeyTeams);
        System.out.print("*********************\n");
        printWinningTeams();
        winningRecord = HockeyTeam.winningRecord(hockeyTeams);
        // printWinningTeams(hockeyTeams); 
    }

    /*********************************/

    public static void printTeams(HockeyTeam[] hockeyTeams) {
        for (int i = 0; i < hockeyTeams.length; i++) {
            System.out.println(hockeyTeams[i]);
        }

    }

    public static void printWinningTeams() {

    }

    public static HockeyTeam[] createTeams() {
        HockeyTeam[] teams;
        HockeyTeam team;
        int count;

        teams = new HockeyTeam[HockeyTeams.getNumberTeams()];
        team = HockeyTeams.getTeam();
        for (count = 0; (count < teams.length) && (team != null); count++) {
            teams[count] = team;
            team = HockeyTeams.getTeam();
        }
        return teams;
    }
}

/* hockey team class *******/

class HockeyTeam {
    public String name;
    public int wins;
    public int otw;
    public int otl;
    public int losses;

    public HockeyTeam(String name, int wins, int otw, int otl, int losses) {
        this.name = name;
        this.wins = wins;
        this.otw = otw;
        this.otl = otl;
        this.losses = losses;
    }

    public String toString() {
        System.out.println(name);

        return " W:" + wins + " OTW:" + otw + " OTL:" + otl + " L:" + losses;
    }

    public static boolean[] winningRecord(HockeyTeam[] hockeyTeam) {
        boolean array[] = new boolean[hockeyTeam.length];

        String name;
        int wins;
        int otw;
        int otl;
        int losses;

        for (int i = 0; i < hockeyTeam.length; i++) {
            System.out.println(HockeyTeam.name);
        }
        return array;
    }

    public static int getPoints() {
        int points = 0;
        return points;
    }
}

/* hockey teams class *******************/
class HockeyTeams {
    private static int count = 0;

    private static HockeyTeam[] hockeyTeams = {
            new HockeyTeam("Canada", 5, 3, 0, 0),
            new HockeyTeam("Russia", 5, 1, 1, 2),
            new HockeyTeam("Finland", 3, 2, 1, 3),
            new HockeyTeam("Sweden", 4, 1, 1, 4),
            new HockeyTeam("USA", 1, 2, 2, 3), };

    public static int getNumberTeams() {
        return hockeyTeams.length;
    }

    public static HockeyTeam getTeam() {
        HockeyTeam hockeyTeam;

        hockeyTeam = null;
        if (count < hockeyTeams.length) {
            hockeyTeam = hockeyTeams[count];
            count++;
        }
        return hockeyTeam;
    }
}

谢谢,

马特。

最佳答案

抱歉,我只能理解你问题的一部分,据我了解,你似乎无法访问个人赢、输、OTL 和 OTW。我希望这能回答你的问题,如果没有请澄清一下

  1. 为了访问OTL,OTW有一个循环如下:

    public class A1Q2fixed
    
    { 
     public static void main(String[] parms) // main method
     {
      processHockeyTeams(); 
     } 
     /*****************************/
    
     public static void processHockeyTeams()  // processing method
     {
    
      boolean[] winningRecord;
    
      HockeyTeam[] hockeyTeams;
    
    
    
      hockeyTeams = createTeams(); 
    
      printTeams(hockeyTeams);
    
      System.out.print("*********************\n");
    
      printWinningTeams();
    
        winningRecord = HockeyTeam.winningRecord(hockeyTeams);
    
        for(HockeyTeam h:hockeyTeams)
        {
            System.out.println(h.losses);//To access and print losses
    
                 System.out.println(h.otw);//To access and print otw
    
                 System.out.println(h.otl);//To access and print otl
    
        }
    
    
      // printWinningTeams(hockeyTeams); 
     } 
    
     /*********************************/
    
     public static void printTeams(HockeyTeam[] hockeyTeams)
    
     {
    
       for (int i = 0; i < hockeyTeams.length; i++)
    
       {
    
         System.out.println(hockeyTeams[i]);
    
       }
    
     }
    
     public static void printWinningTeams()
    
     {
    
     }
    
     public static HockeyTeam[] createTeams() 
     { 
      HockeyTeam[] teams; 
    
      HockeyTeam team; 
    
      int count; 
    
      teams = new HockeyTeam[HockeyTeams.getNumberTeams()]; 
    
      team = HockeyTeams.getTeam(); 
    
      for (count=0; (count<teams.length) && (team!=null); count++) 
      { 
    
       teams[count] = team; 
    
       team = HockeyTeams.getTeam(); 
    
      } 
    
      return teams; 
    
     } 
    
    } 
    
  2. 在 HockeyTeam 中也将名称声明为 Static

关于java - 通过方法在不同类之间调用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591621/

相关文章:

c# - 是否可以在配置中定义一个变量?

java - 尝试连接mysql数据库

java - AES 解密方法错误

java - java中动态分配的数组数组

java - 如何更改 JitPack 中的版本?

arrays - 在 Go 中,是否可以在不需要星号取消引用的情况下将变量分配给 someArray[someIndex]?

c - 将数据从 iphdr 传递到结构

c# - 对 double 组中的所有元素进行四舍五入

php - 使用冒号访问变量的 Json 值 ( :) in between using Php

java - 简单问题: ValueChanged Event in Java