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

一般来说,我对 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

}

感谢您的任何帮助。


呼啦一阵风
浏览 160回答 3
3回答

幕布斯6054654

你的解决方案对我来说似乎是“颠倒的”。与其创建具有固定俱乐部的球员,不如创建一个没有俱乐部的球员,然后将他们分配到一个俱乐部。Player marcRash = new Player("Marcus", "Rashford", "CF", 10, 20 );mutd.add( marcRash );在使用 Java 编程时,请遵循 Java 的编码指南。变量名称marcRush和mutd以小写字母开头。在里面Club,你可以只列出已经添加的玩家。public class Club {&nbsp; &nbsp;private ArrayList<Player> members = new ArrayList<>();&nbsp; &nbsp;public void add( Player player ) {&nbsp; &nbsp; &nbsp; members.add( player );&nbsp; &nbsp;}&nbsp; &nbsp;public String listMemebers() {&nbsp; &nbsp; &nbsp;if( members.size() == 0 ) return "";&nbsp; &nbsp; &nbsp;StringBuilder sb = new StringBuilder();&nbsp; &nbsp; &nbsp;for( Player p : members ) {&nbsp; &nbsp; &nbsp; &nbsp;sb.append( p.getFirstName() );&nbsp; &nbsp; &nbsp; &nbsp;sb.append( " " );&nbsp; &nbsp; &nbsp; &nbsp;sb.append( p.getLastName() );&nbsp; &nbsp; &nbsp; &nbsp;sb.append( ", " );&nbsp; &nbsp; }&nbsp; &nbsp; sb.setLength( sb.length()-2 );&nbsp; &nbsp; return sb.toString();&nbsp; }}

LEATH

您可以像这样为 Club 对象创建一个列表https://docs.oracle.com/javase/8/docs/api/java/util/List.htmlList<Player> players; 在您的构造函数中,您将每个玩家添加到列表中。这种类型的结构将允许您拥有与俱乐部相关的所有球员然后你可以建立你的方法来打印列表中的每个对象List<Player> listPlayers(Club club) {&nbsp; &nbsp;//Loop through the elements on the list&nbsp; &nbsp;// print each Player&nbsp;}

神不在的星期二

听起来您需要一个名为 League 的 Club 类容器。然后 League 类可能包含一个方法,该方法将 Club 对象作为参数并调用 Club 类中的方法以返回其实例中的所有玩家(假设,无论出于何种原因,您需要 League 类中可用的此 API) .俱乐部的球员将包含在 Club 类的 HashSet 中。所以 Club 类中的类变量将是:&nbsp;HashSet<Player> players;.不过只是一个注释。我会使用 HashSet(而不是 ArrayList)来防止同一俱乐部中出现重复的球员——这在现实世界中是不可能的。但是为了使用 HashSet,包含的元素(播放器)需要实现方法equals和hashCode.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java