【问题标题】:Football Team: Objects and Classes足球队:对象和类
【发布时间】:2017-05-30 17:53:06
【问题描述】:

在我发布我的问题之前,我只需要关于如何改进我的 java 程序的指导,因为我想学习。

所以,对于我的任务,我需要:

创建 3 个类,应用程序,足球运动员和足球队。应用程序(应用程序)将使用另外两个类(足球运动员和足球队)。

应用会

  • 创建 11 名足球运动员(您可以将他们放在一个数组中或 数组列表)
  • 使用上述球员创建一个足球队使用 足球队实例(对象)显示请求的信息 在实验室里

一个足球运动员课

  • 至少有 5 个属性来自 您选择返回有关播放器的完整信息的方法

一个足球队课有

  • 名字和吉祥物
  • 11 名足球运动员
  • 任何其他属性(可选)
  • 一种显示有关团队的所有信息的方法,包括:
    • 姓名
    • 吉祥物,以及球队中每位球员的信息
    • 一种使用输入参数(例如球员位置或球员编号)显示球队中特定球员信息的方法。例如,来自 A 队,显示有关四分卫的信息,或显示有关 5 号球员的信息。

我对团队课程感到困惑。我不知道如何将 11 个玩家添加到类中并为玩家实例提供输入参数。我不确定我的应用程序类,因为我不知道如何使用足球队实例(对象)来显示实验室中请求的信息。

这是我目前所拥有的

public class app {
public static void main(String[] args)
{
        player pl1 = new player
        ("Christian","Campbell","Cornerback","Alabama","Central");
            System.out.println(pl1.getInfo());

        player pl2 = new player
        ("Marcus","Allen","Safety","Maryland","Dr. Henry A. Wise, Jr");
            System.out.println(pl2.getInfo());
        player pl3 = new player 
        ("Tommy","Stevens","Quarterback","Indiana","Decatur Central");
            System.out.println(pl3.getInfo());
        player pl4 = new player
        ("Nyeem","Wartman-White", "Linebacker","Pennsylvania","Valley View");
             System.out.println(pl4.getInfo());
        player pl5 = new player
        ("George", "Foreman", "Defensive back","Georgia","Parkview");
            System.out.println(pl5.getInfo());
        player pl6 = new player
        ("Andre","Robinson","Right Tackle","Pennsylvania","Bishop McDevitt");
            System.out.println(pl6.getInfo());
        player pl7 = new player
        ("Malik","Golden","Safety","Connecticut","Chesire Academy");
            System.out.println(pl7.getInfo());
        player pl8 = new player
        ("Koa","Farmer","Safety","California","Notre Dame");
            System.out.println(pl8.getInfo());
        player pl9 = new player
        ("Jake","Zembiec","Quarterback","New York","Aquinas Institute");
            System.out.println(pl9.getInfo());
        player pl10 = new player
        ("Brandon","Polk","Wide Receiver","Virgina","Briar Woods");
            System.out.println(pl10.getInfo());
        player pl11 = new player
        ("Trace","McSorley","Quarterback","Virgina","Briar Woods");
            System.out.println(pl11.getInfo());


  }

}

public class player {



//---------Declaring attributes----
    String firstName;
    String lastName;
    String position;
    String State;
    String Highschool;


    player (String inf_firstName, String inf_lastName, String inf_position, String inf_State, String inf_Highschool)
{
            firstName = inf_firstName;
            lastName = inf_lastName;
            position = inf_position;
            State = inf_State;
            Highschool = inf_Highschool;
    }
String getInfo()
{
    return "Name: "+firstName+ " "+lastName+", "+"position: " +position+ ", State: " +State+ ", High School: " +Highschool; 
  }

}

public class team {

   String team = "Penn State";
   String mascot = "Nittany Lions";

    team(String inf_team, String inf_mascot)
      {
        team = inf_team;
        mascot = inf_mascot;                             
      }
team t1 = new team("Penn State", "Nittany Lions");

     String getInfo()
     {
       return "Team Name: "+team+ "Team Mascot: "+mascot;
     }
}

【问题讨论】:

  • 欢迎来到 Stack Overflow!看起来你正在寻求家庭作业帮助。虽然我们对此本身没有任何问题,但请注意这些dos and don'ts,并相应地编辑您的问题。
  • "我不知道如何将 11 个玩家添加到类中并为玩家实例提供输入参数" 在Team 中使用List<Player>,该值将提供给@987654325 @ 的构造函数。

标签: java arrays class object instances


【解决方案1】:

在您的团队类中,在字符串团队和字符串吉祥物下方,您需要一个 player[] 玩家数组。在你的构造函数中,传入一个包含所有玩家的数组。

【讨论】:

    【解决方案2】:

    2 个选项 -

    在您的 main 方法中,您创建一个数组并将所有玩家添加到其中,然后将其传递给您的 Team 构造函数,该构造函数将一个内部数组设置为传入数组的值

    或者你的 Team 对象有一个类似 addPlayer(player) 的方法,它将玩家添加到你的 Team 的内部玩家数组中。然后在每个玩家创建后调用该方法。

    你也应该大写你的类名..比如团队、玩家等。

    【讨论】:

      【解决方案3】:

      我没有为实例变量编写gettersetter 方法,因为我认为您可以弄清楚这些。但从您对Team 类的描述来看,它可能看起来像这样。

      public class Team {
      
          //Instance variables and constants
          private static final int MAX_PLAYERS = 11;
          private Player[] players;
          private String name;
          private String mascot;
      
      
          //Constructor
          public Team(String name, String mascot) {
              this.name = name;
              this.mascot = mascot;
              this.players = new Player[MAX_PLAYERS];
          }
      
      
          //Add players to the team
          public void addPlayers(List<Player> p) {
              //Ensures only 11 players are added to the team
              for (int i = 0; i < MAX_PLAYERS; i++)
                  this.players[i] = p.get(i);
          }
      
      }
      

      为了匹配这个Team 类的实现,你的App 应该更像这样,以便能够将已经构建的List&lt;Player&gt; 传递给addPlayers 类的addPlayers 方法。 ..

      public class app {
          public static void main(String[] args) {
              List<Player> players = new ArrayList<>();
      
              players.add(new Player(/* Parameters for each player object */));
              //Not writing this 11 times!
      
              Team team = new Team("The Bulldogs", "Bull Dog");
              team.addPlayers(players);
          }
      }
      

      【讨论】:

      • 11位选手去哪了?
      • 将 11 个播放器对象添加到 List&lt;Player&gt; players 后,列表将传递给 Team 类的 addPlayers 方法,该方法将它们放入 Team 类中的 array 中存储在团队中。
      【解决方案4】:

      由于您有 11 个玩家,最好创建一个对象数组,因为它们具有相似的属性。像这样:

      Player[] players = new Player[11];
      

      然后添加它们的参数,然后将它传递给app的构造函数类,它接受一个palyers的列表。

      【讨论】:

        【解决方案5】:

        我已更新您的解决方案。这就是您创建类和方法的方式。 请参阅内联 cmets 了解更多信息。希望这会有所帮助。

                    public class App {
                public static void main(String[] args) {
                    //creating a team
                    Team t1 = new Team("Penn State", "Nittany Lions");
        
                    Player pl1 = new Player("Christian", "Campbell", "Cornerback", "Alabama", "Central");
                    System.out.println(pl1.getInfo());
                    //for example, adding one player to the team t1 created above.
        
                    t1.addPlayer(pl1); 
                    //you can repeat this step for adding all the teams
        
                    Player pl2 = new Player("Marcus", "Allen", "Safety", "Maryland", "Dr. Henry A. Wise, Jr");
                    System.out.println(pl2.getInfo());
                    Player pl3 = new Player("Tommy", "Stevens", "Quarterback", "Indiana", "Decatur Central");
                    System.out.println(pl3.getInfo());
                    Player pl4 = new Player("Nyeem", "Wartman-White", "Linebacker", "Pennsylvania", "Valley View");
                    System.out.println(pl4.getInfo());
                    Player pl5 = new Player("George", "Foreman", "Defensive back", "Georgia", "Parkview");
                    System.out.println(pl5.getInfo());
                    Player pl6 = new Player("Andre", "Robinson", "Right Tackle", "Pennsylvania", "Bishop McDevitt");
                    System.out.println(pl6.getInfo());
                    Player pl7 = new Player("Malik", "Golden", "Safety", "Connecticut", "Chesire Academy");
                    System.out.println(pl7.getInfo());
                    Player pl8 = new Player("Koa", "Farmer", "Safety", "California", "Notre Dame");
                    System.out.println(pl8.getInfo());
                    Player pl9 = new Player("Jake", "Zembiec", "Quarterback", "New York", "Aquinas Institute");
                    System.out.println(pl9.getInfo());
                    Player pl10 = new Player("Brandon", "Polk", "Wide Receiver", "Virgina", "Briar Woods");
                    System.out.println(pl10.getInfo());
                    Player pl11 = new Player("Trace", "McSorley", "Quarterback", "Virgina", "Briar Woods");
                    System.out.println(pl11.getInfo());
        
                }
        
            }
        
            class Player {
        
                // ---------Declaring attributes----
                String firstName;
                String lastName;
                String position;
                String State;
                String Highschool;
        
                Player(String inf_firstName, String inf_lastName, String inf_position, String inf_State, String inf_Highschool) {
                    firstName = inf_firstName;
                    lastName = inf_lastName;
                    position = inf_position;
                    State = inf_State;
                    Highschool = inf_Highschool;
                }
        
                String getInfo() {
                    return "Name: " + firstName + " " + lastName + ", " + "position: " + position + ", State: " + State
                            + ", High School: " + Highschool;
                }
        
            }
        
            class Team {
        
                String team = "Penn State";
                String mascot = "Nittany Lions";
                Player[] playerArr = new Player[11]; //this is the main part. Array of players (11)
                int playerCount = 0;  //this will track the number of players being added to the team.
        
                Team(String inf_team, String inf_mascot) {
                    team = inf_team;
                    mascot = inf_mascot;
                }
        
                public String getInfo() {
                    return "Team Name: " + team + "Team Mascot: " + mascot;
                }
        
                //Using this method you can add the players to the Player Array.
                public void addPlayer(Player player) {
                    if (playerCount < 11) {
                        playerArr[playerCount] = player;
                        playerCount++;
                    }
                }
        
                //Using this method you find out a player with specific quality 
                //like in this case its position of the player.
                //you can iterate through the Players Array and can find out the player 
                // And after that you can get the information of the player by your method 
                //getInfo
                public String getPlayerInfo(String positionTemp) {
                    Player player = null;
                    for (int i = 0; i < playerArr.length; i++) {
                        if (playerArr[i].position.equals(positionTemp)) {
                            player = playerArr[i];
                            break;
                        }
                    }
                    return player.getInfo();
                }
            }
        

        【讨论】:

          猜你喜欢
          • 2012-12-11
          • 1970-01-01
          • 2020-10-25
          • 2019-05-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-06
          相关资源
          最近更新 更多