类连接两个面向对象的java类
我希望创建两个新类,在那里我可以连接这些类。 我想创建一个玩家和团队类。我的目标是将一名球员分配给一支球队。基本上,我希望使用类中的类作为属性
我想象我的球员阶级是什么样的
public class Player {
String first_name;
String last_name;
int age;
}
我的团队应该是这样的
public class Team {
String Member1;
String Member2;
}
我的主要课程包括:
Player Player1 = new Player("Peter", "Jensen", 24);
所以我想做的是计算我的球员在特定球队的平均年龄。有什么想法或建议吗
# 1 楼答案
您可以将getter和setter方法添加到player类中。如果你愿意,你也可以在玩家课上做类似的事情:
}
现在你可以很容易地为球队添加球员。但成员不能是字符串。我的建议是使用ArrayList。你可以找到很多关于这方面的文章
你可以使用“for(Player a:ListName)”,这会让你的事情变得更简单
# 2 楼答案
在
Team
类中创建一个玩家列表或数组(如果允许有固定数量的玩家),以代表玩家团队例如:
然后创建对象列表:
然后你可以这样计算平均年龄:
注意-上面的例子使用了一个列表,但你也可以简单地使用一个数组,它还使用streams API,如果你不熟悉它,你可以这样做:
如果出于某种原因,您还希望能够一次添加一个给定的玩家,那么您可以在
Team
类中创建一个void addPlayer(Player player){...}
方法来获取给定的玩家并将其添加到玩家列表中# 3 楼答案
我的解决方案
及
谢谢你的帮助
# 4 楼答案
在现实生活中,什么是团队?这是一组玩家,所以你需要让
Team
由Players
组成,然后问一个问题“在哪里有最大数量的信息来计算玩家的平均年龄?”这些信息放在Team
类(玩家列表)中,我们需要将计算平均年龄的方法放在Team
类中。它被称为信息专家原则,是众多优秀的面向对象设计原则之一https://en.wikipedia.org/wiki/GRASP_(object-oriented_design)#Information_expert
这样,代码将是这样的:
玩家等级:
团队课程:
之后,我们能够以各种方便的方式使用这些类,例如:
简单的询问团队球员的平均年龄,团队会回复你
# 5 楼答案
在您的团队中,您需要存储一组玩家:
使用addPlayer()方法将玩家添加到main类的列表中