Я просто делаю некоторую ревизию для своего O.O.P. Экзамен появится на следующей неделе, и я застрял на вопросе. Вопрос в основном дает пример двунаправленной связи между Собакой и Блохой. Пока у меня есть Собака с блохами. Часть, на которую я застрял, - «Измените класс собаки, чтобы объект собаки мог вмещать до 5 объектов блох max (напечатайте« У вашей собаки слишком много блох! », Если есть более 5 блох). Вот мой код до сих пор:Как установить ограничение на количество объектов в ArrayList
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);
}
}
консоли:
Freddy собака (в возрасте 5) есть блохи. Это: [Джон (в возрасте 1), Патрик (3 года), Алан (7 лет), Стивен (2 года), Чарльз (5 лет), Дерек (1 год), Кевин (8 лет)].
Какое определение метода 'hostFlea'? –