首页 > 解决方案 > 如何返回特定足球俱乐部的所有球员

问题描述

一般来说,我对 IT 或 Stack Overflow 并不陌生,但对 java + oop 很陌生,所以如果语法不正确,请原谅我,我正在尝试快速升级 java,需要帮助我完成一个项目正在努力改进。

我正在尝试重新创建最基本版本的足球经理,到目前为止,有一个“俱乐部”类和一个“球员”类,我已经创建了几个俱乐部,具有自己的属性和价值,现在想分配每个俱乐部的球员。我在每个类中都有一个构造函数,它将为每个俱乐部和球员创建单独的对象,所以当我创建 Marcus Rashford 时,它看起来像这样..

Player MarcRash = new Player("Marcus", "Rashford", "CF", 10, 20, Mutd);

Mutd,是我之前创建的一个 Club 对象。

10 是他的球衣号码,20 是他的年龄 //不重要

问题:如何在我的Club类中创建一个方法来列出当前分配给每个俱乐部的所有球员?

即:所有当前具有与创建它们的最后一个参数相同的对象的所有玩家?

void listPlayers(Club club) {
 //something here
}

感谢您的任何帮助。

标签: javaclassoop

解决方案


你的解决方案对我来说似乎是“颠倒的”。与其创建具有固定俱乐部的球员,不如创建一个没有俱乐部的球员,然后将他们分配到一个俱乐部。

Player marcRash = new Player("Marcus", "Rashford", "CF", 10, 20 );
mutd.add( marcRash );

在使用 Java 编程时,请遵循 Java 的编码指南。变量名称marcRushmutd以小写字母开头。

在里面Club,你可以只列出已经添加的玩家。

public class Club {
   private ArrayList<Player> members = new ArrayList<>();

   public void add( Player player ) {
      members.add( player );
   }

   public String listMemebers() {
     if( members.size() == 0 ) return "";
     StringBuilder sb = new StringBuilder();
     for( Player p : members ) {
       sb.append( p.getFirstName() );
       sb.append( " " );
       sb.append( p.getLastName() );
       sb.append( ", " );
    }
    sb.setLength( sb.length()-2 );
    return sb.toString();
  }
}

推荐阅读