【问题标题】:Adding multiple parameters to ArrayList向 ArrayList 添加多个参数
【发布时间】:2016-04-22 20:43:10
【问题描述】:

我无法确定这项任务。我只是在寻找特定问题的答案,因为在向数组列表添加东西时我似乎有点迷茫。我有一个带有 add 方法的“Gym”类,它应该从 Member 类创建一个“Member”对象。

public class Gym {

    private String gymName;              // Identifies the name of the gym.
    private ArrayList<Member> members;   // A list of member objects.
    private double[] gymRates;           // A map that relates membership type to its fee.
    private double trainerRate;          // indicates rate charge for one hour with PT.

    /**
     * Add a new member to a gym's list of members.
     * 
     * @param hoursQ1    number of personal trainer hours the member had for quarter one.
     * @param hoursQ2    number of personal trainer hours the member had for quarter two.
     * @param hoursQ3    number of personal trainer hours the member had for quarter three.
     * @param hoursQ4    number of personal trainer hours the member had for quarter four.
     */
    public void addMember(String firstName, String lastName, MembershipType memberType, int hoursQ1, int hoursQ2,
            int hoursQ3, int hoursQ4) {
        members.add(new Member(firstName, lastName, memberType, hoursQ1, hoursQ2, hoursQ3, hoursQ4));
    }

    /**
     * Add a specified member to a gym's list of members.
     * 
     * @param member     the member to add.
     */
    public void addMember(Member member) {
        Member.add(member);
    }
}

public class Member {
    private String firstName;
    private String lastName;
    private MembershipType memberType;
    private int[] trainerHours = new int[4];
}

据我了解,错误(参数长度不同)是因为该参数具有 Q1-Q4 小时数,而我没有正确地将它们初始化到 trainerHours 数组中?

另外,我的 trainerHours 数组应该使用枚举类型类“Quarter”作为索引 Q1、Q2、Q3、Q4。这个我也没搞清楚。。 抱歉格式化,这里也有问题! ;)

【问题讨论】:

  • 您是否为 Member 定义了一个构造函数,它接受所有这些参数?
  • Member.add(member);public void addMember(Member member) 方法中必须是members.add(member);
  • @AndrewWilliamson 不,这正是我所期望的。我收到一个关于 Member 类的构造函数的错误。我认为项目描述让我有点困惑,因为它有点暗示我只需要 Member 中的那些私有字段,它没有这样的构造函数。我想它想让我弄清楚?不管怎样,让我试着做一个。

标签: java arraylist enumerated-types


【解决方案1】:

你的代码有两个问题:

  • 首先,当您调用 new Member (...) 时,未定义该函数,因为您尚未为类 Member 定义具有这些参数的构造函数
  • 第二,你的第二个addMember方法不对,应该是members.add(...)而不是Member.add

【讨论】:

  • 感谢您指出这些,正如人们已经说过的那样,但很高兴看到一些澄清,这是有道理的。我拥有 Member.add 的原因是我认为我正在创建 Member 类的新对象。
【解决方案2】:

我应该为成员类创建以下构造函数:

public Member(String pFirstName, String pLastName, MembershipType pMemberType, int hoursQ1, int hoursQ2, int hoursQ3, int hoursQ4){
    firstName = pFirstName;
    lastNam = pLastName;
    memberType = pMemberType;
    trainerHours[0] = hoursQ1;
    trainerHours[1] = hoursQ2;
    trainerHours[2] = hoursQ3;
    trainerHours[3] = hoursQ4;
}

【讨论】:

  • 谢谢!这正是我认为我需要的,但是仍然存在使用枚举类型的问题。我有枚举类 Quarter,常量 Q1 Q2 Q3 和 Q4。所以我需要 trainerHours[Q1]。我以为是 trainerHours[Quarter.Q1] 但这不起作用。
猜你喜欢
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多