2016-04-11 9 views
1

この課題を理解するのに問題があります。私は、特定の問題の答えを探しているだけです。物事を配列リストに追加すると少し失われているようです。私はMemberクラスから 'Member'オブジェクトを作成するはずのaddメソッドで 'Gym'クラスを持っています。パラメータが時間Q1-Q4を持っているので、私の理解からArrayListに複数のパラメータを追加する

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]; 
} 

エラー(引数の長さが異なる)であり、そして私が正しくtrainerHours配列にそれらを初期化していませんよ?

また、私のtrainerHours配列は、Q1、Q2、Q3、Q4のインデックスとして列挙型クラス '四半期'を使用することになっています。私はこれを理解していません。 フォーマットには申し訳ありませんが、ここでも問題があります! ;)

+2

メンバーのコンストラクタを定義しましたか?それらのパラメータはすべてかかりますか? –

+1

'Member.add(member);'これは 'public void addMember(Member member)'メソッドの 'members.add(member);'でなければなりません。 – rdonuk

+0

@AndrewWilliamsonいいえ、私が期待していたことはまさにそれです。私は、Memberクラスのコンストラクタについて何か言っている間違いが1つあります。私は、プロジェクトの記述は、私が少しだけ混乱させたと思います。なぜなら、私はメンバーにこれらのプライベートフィールドだけが必要だと暗示しています。私はそれを理解したかったと思う?とにかく私は1つを作ろうとします。 – Kronus

答えて

0

あなたのコード内の2つの問題があります

  • 最初は、新しいメンバー(...)を呼び出すときに、これらの引数を持つコンストラクタを定義していないので、その関数は、定義されていませんクラスのメンバーのための
  • 秒2番目のaddMember方法が間違っている、それは(...)members.addしなければならない代わりにMember.add
+0

人々がすでに言ったように、それらを指摘していただきありがとうございますが、明確化を見てうれしいです。私がMember.addを持っていた理由は、私がMemberクラスの新しいオブジェクトを作成していると思ったからです。 – Kronus

0

私はメンバークラスの次のコンストラクタにする必要があります。

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; 
} 
+0

ありがとうございました!これはまさに私が必要と思っていたものですが、列挙型を使用するという問題はまだあります。私は定数Q1 Q2 Q3とQ4を持つenumクラスQuarterを持っています。だからトレーナーが必要です[1]。私はtrainerHours [Quarter.Q1]だろうと思ったが、それはうまくいかない。 – Kronus

関連する問題