I'm just doing some revision for my O.O.P. Exam coming up next week and I'm stuck on a question. The question is basically give an example of bi-directional association between a Dog and a Flea. So far I've got a Dog with Fleas. The part I'm stuck on is, "Modify the dog class so that a dog object can only hold up to 5 flea objects max (print "Your dog has too many fleas!" if there's more than 5 fleas). Here's my code so far:
Dog.java
import java.util.ArrayList;
public class Dog {
    private String name;
    private int age;
    private String address;
    ArrayList<Flea> fleas = new ArrayList<Flea>(); {
        if(fleas.size() > 5) {
             System.out.println("This dog has too many fleas!");
        }
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public void hostFlea(Flea flea) {
        fleas.add(flea);
    }
    public ArrayList<Flea> getDogFlea() {
         return fleas;
    }
    public String toString() {
        return name + " the Dog (aged " + age + ") has fleas. \nThey are: " + fleas + ".";
    }   
}
Flea.java
public class Flea {
    private String name;
    private int age; 
    public Flea (String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String toString() {
        return name + " (aged " + age + ")";
    }
}
Test.java
public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog();
            dog.setName("Freddy");
            dog.setAddress("Cork");
            dog.setAge(5);
        Flea flea1 = new Flea("John", 1);
        dog.hostFlea(flea1);
        Flea flea2 = new Flea("Patrick", 3);        
        dog.hostFlea(flea2);
        Flea flea3 = new Flea("Alan", 7);
        dog.hostFlea(flea3);
        Flea flea4 = new Flea("Steven", 2);
        dog.hostFlea(flea4);
        Flea flea5 = new Flea("Charles", 5);
        dog.hostFlea(flea5);
        Flea flea6 = new Flea("Derek", 1);
        dog.hostFlea(flea6);
        Flea flea7 = new Flea("Kevin", 8);
        dog.hostFlea(flea7);
        System.out.println(dog);
    }
}
Console:
Freddy the Dog (aged 5) has fleas. They are: [John (aged 1), Patrick (aged 3), Alan (aged 7), Steven (aged 2), Charles (aged 5), Derek (aged 1), Kevin (aged 8)].
 
     
     
     
     
    