I am stuck on these questions (I am a beginner at Java):
In class ClubDemo, include membership number data where you add the records in the demo() method and In class Club write a new method printAllMembers(). This should use a for-each loop to access each Membership object in turn. Print individual member's records using the toString() method. Add a call to this method in the demo() method in ClubDemo.
This is the code I have so far
/** * Provide a demonstration of the Club and Membership * classes. */ public class ClubDemo { // instance variables - replace the example below with your own private Club club; /** * Constructor for objects of class ClubDemo */ public ClubDemo() { club = new Club(); } /** * Add some members to the club, and then * show how many there are. * Further example calls could be added if more functionality * is added to the Club class. */ public void demo() { club.join(new Membership("Dave", 2, 2004, 34)); club.join(new Membership("Michael", 1, 2004 , 35)); club.join(new Membership("India", 2, 2004 , 36)); club.join(new Membership("Kim", 3, 2005 , 37)); club.join(new Membership("Eliisa", 2, 2004 , 38)); club.join(new Membership("Robeto", 1, 2004 , 39)); System.out.println("The club has " + club.numberOfMembers() + " members."); ; } }
/** * Store details of club memberships. */ public class Club { // Define any necessary fields here ... ArrayList<Membership> members; /** * Constructor for objects of class Club */ public Club() { // Initialise any fields here ... members = new ArrayList<Membership>(); } /** * Add a new member to the club's list of members. * @param member The member object to be added. */ public void join(Membership member) { members.add(member); } /** * @return The number of members (Membership objects) in * the club. */ public int numberOfMembers() { return members.size(); } }
/** * Store details of a club membership. */ public class Membership { // The name of the member. private String name; // The month in which the membership was taken out. private int month; // The year in which the membership was taken out. private int year; private int membershipNumber; /** * Constructor for objects of class Membership. * @param name The name of the member. * @param month The month in which they joined. (1 ... 12) * @param year The year in which they joined. */ Membership(String name, int month, int year , int membershipNumber) { if(month >= 1 && month <= 12) { this.name = name; this.month = month; this.year = year; this.membershipNumber = membershipNumber; } else { System.out.println ("Invalid month (1 ... 12): " + month); } } /** * @return The member's name. */ public String getName() { return name; } /** * @return The month in which the member joined. * A value in the range 1 ... 12 */ public int getMonth() { return month; } /** * @return The year in which the member joined. */ public int getYear() { return year; } public int getmembershipNumber() { return membershipNumber; } /** * @return A string representation of this membership. */ public String toString() { return "Name: " + name + " joined in month " + month + " of " + year + membershipNumber; } }