为了账号安全,请及时绑定邮箱和手机立即绑定

如何返回特定足球俱乐部的所有球员

如何返回特定足球俱乐部的所有球员

呼啦一阵风 2022-01-19 15:38:17
一般来说,我对 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}感谢您的任何帮助。
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

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


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

mutd.add( marcRash );

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


在里面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();

  }

}


查看完整回答
反对 回复 2022-01-19
?
LEATH

TA贡献1936条经验 获得超6个赞

您可以像这样为 Club 对象创建一个列表


https://docs.oracle.com/javase/8/docs/api/java/util/List.html


List<Player> players; 在您的构造函数中,您将每个玩家添加到列表中。这种类型的结构将允许您拥有与俱乐部相关的所有球员


然后你可以建立你的方法来打印列表中的每个对象


List<Player> listPlayers(Club club) {

   //Loop through the elements on the list

   // print each Player 

}


查看完整回答
反对 回复 2022-01-19
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

听起来您需要一个名为 League 的 Club 类容器。然后 League 类可能包含一个方法,该方法将 Club 对象作为参数并调用 Club 类中的方法以返回其实例中的所有玩家(假设,无论出于何种原因,您需要 League 类中可用的此 API) .

俱乐部的球员将包含在 Club 类的 HashSet 中。所以 Club 类中的类变量将是: HashSet<Player> players;.

不过只是一个注释。我会使用 HashSet(而不是 ArrayList)来防止同一俱乐部中出现重复的球员——这在现实世界中是不可能的。但是为了使用 HashSet,包含的元素(播放器)需要实现方法equalshashCode.



查看完整回答
反对 回复 2022-01-19
  • 3 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信