Предположим, у вас есть класс A. A создает экземпляр класса B, который, в свою очередь, создает экземпляр класса C.
Класс A является основным методом, и его единственной задачей является создание экземпляра.класса B. Класс B является симулятором, содержащим несколько методов, которые запускают программу для X «шагов».Класс C имеет графический интерфейс, с одной кнопкой и сеткой, которая может обновляться. Он содержит все методы для этого.
Чтобы кнопка в классе C функционировала, она должна использовать метод в классе B, который, в свою очередь, использует другой метод в классе C.
Возможно ли для C использовать метод изB, без создания ДРУГОГО экземпляра B в C?
Код в C при нажатии кнопки,
[snip]
for(int i = 0; i < numberOfSteps; i++){
B.simulateOneStep();
}
[snip]
, при этом запускается следующий код в B,
public void simulateOneStep()
{
step++;
List<Animal> newAnimals = new ArrayList<Animal>();
for(Iterator<Animal> it = animals.iterator(); it.hasNext(); ) {
Animal animal = it.next();
animal.act(newAnimals);
if(! animal.isAlive()) {
it.remove();
}
}
animals.addAll(newAnimals);
C.showStatus(step, field);
}
Из проведенного мною тестирования метод simulateOneStep () запускает ДО строки C.showStatus (), после чего он не запускает эту строку до последней итерации начального цикла for (т. Е. Для 10 шагов, вы должны увидеть10 различных отображений в сетке. Программа выполняет все 10 шагов правильно, однако она отображает только последний).
Возможно ли запускать методы таким способом?Я попытался добавить showStatus () в цикл for в методе класса C. Но это ничего не изменило.