【发布时间】:2014-01-21 23:50:59
【问题描述】:
正如标题所说。我有两个类,一个是“玩家”,另一个是“团队”,其中包括一个玩家数组列表。我在团队类中的一种方法是 howmanyallstars,我尝试查看团队中有多少个全明星,但我的布尔值出现错误。
public class Player {
private String nameofplayer;
private int currentposition;
private double baverage;
private boolean allstar;
public Player (String name, int position, double battingaverage, boolean isallstar) {
nameofplayer = name;
currentposition = position;
baverage = battingaverage;
allstar = isallstar;
}
那么我有:
public class Team {
private String nameteam;
private static ArrayList roster;
private double priceofgame;
private double budget;
private int numberofgames;
public Team (String teamname, ArrayList teamroster, double price, double teambudget, int games) {
nameteam = teamname;
roster = teamroster;
priceofgame = price;
budget = teambudget;
numberofgames = games;
}
public static int numberOfAllstars(Team name) {
int rostersize = roster.size();
int numofallstars = 0;
for (int counter = 0; counter <= rostersize; counter++) {
if (roster.get(counter).allstar == true) numofallstars++;
}
return numofallstars;
}
正如我所说,.allstar 已被标记,我不知道如何修复它。有人可以帮忙吗?
【问题讨论】:
-
Player p=(Player) ArrayList.get(1) 然后访问P对象变量?这就是你想要做的......这就是你的问题标题所说的可能 for(Object p : roster){Player x=(Player)roster.get(x); if (x.isAllstarts){some_counter++}}
-
下面的答案涵盖了您的实际问题,但我想补充一点,您可能不希望您的名册 ArrayList 或 numberOfAllstars 方法是静态的。我想每个团队实例的名册都是不同的,所以只需使用:
private ArrayList<Player> roster;
标签: java class object arraylist