Lejos (java) и интерфейсы // Предложение UML

#java #interface #uml #polymorphism #lejos-nxj

#java #интерфейс #uml #полиморфизм #lejos-nxj

Вопрос:

Я создал проект с помощью lejos 0.9. Теперь я знаю, что я могу загружать и компилировать классы (от java до файлов nxj) с помощью плагина eclips только тогда, когда класс имеет public static void main(String[] args) . Но мне нужно получить больше классов и интерфейсов в конструкторе lego mindstorm. Есть ли способ сделать это? Подключение напрямую к кирпичу не является хорошей идеей, потому что тогда файлы java будут помещены в кирпич, который нельзя запустить.

Другим вариантом решения этой проблемы может быть изменение дизайна uml. Это текущий дизайн введите описание изображения здесь

Итак, в основном существует класс robot, и другие роботы, такие как humanoid и т.д., Расширяют этот класс robot. Затем есть варианты поведения. Все они реализуют интерфейс Iwalk. Каждый робот может динамически изменять поведение из-за полиморфизма .

В humanoid.java:

 package Robots;
  

импортируйте поведения.; импортируйте IBehaviours.;

публичный класс Humanoid расширяет Robot { частный Iwalk walker = новый ForwardLegs();

 Iwalk getWalker() {
    return walker;
}

public void setWalker(Iwalk walker) {
    this.walker = walker;
}

public void moving() {
    setWalker(walker);
    walker.move();
}
}
  

В адском мире.класс Java (не связан ни с каким классом, просто для инициализации)

         Humanoid asimov = new Humanoid();
    asimov.setWalker(new ForwardLegs());
    asimov.moving();
  

Итак, существуют ответы на мой вопрос: как разместить интерфейсы в кирпиче legomindstorm с помощью lejos. Или другой дизайн UML, который делает то же самое, но без интерфейсов. Заранее благодарю .

Комментарии:

1. Просто примечание: использовал Lejos для завершения семестрового проекта (вместо прилагаемого программного обеспечения) еще на первом курсе и в итоге сделал все за одну ночь (включая сборку / ассемблер / код). Получил самую высокую оценку во всем колледже. Было весело 🙂

2. хехе, очень приятно, у меня все еще есть несколько недель, чтобы завершить мой проект: p

Ответ №1:

Я решил проблему, не используя интерфейсы. Причина, по которой мне нужны были интерфейсы, заключалась в том, что мне нужен полиморфизм. Что также возможно путем изменения интерфейса iWalk на абстрактный класс и изменения реализаций на extends в поведении.