Новые классы создаются пользователями?

Рассмотрите эту ситуацию: у меня есть средство моделирования аквариума, где у меня есть 5 различных типов рыб. Различные типы означают различные атрибуты (скорость, цвет, голод, и т.д.). Что, если я хочу, чтобы пользователь моего средства моделирования смог создать новый тип рыбы и дать ему ее значения для ее атрибутов?

Как это реализовано программистом? Мне нужна некоторая "обработка событий", которая добавит определенный набор строк кода в моем классе "Рыбы"? Это - даже допустимая мысль?

(В случае, если это важно, язык является Java. И избежать каких-либо недоразумений и предотвратить комментарии как "-эта работа uni?", да это. Но я не ищу ответ, мне любопытно на предмет понятия.)

Править: Да, мое плохое, что я не упоминал взаимодействие путь: GUI.

Так, вообразите вкладку названной, "Добавьте Новая Разновидность", которая имеет поле для каждого атрибута рыб (тип, скорость, цвет, и т.д.). Так, пользователь заполняет поля с соответствующими значениями и когда он нажимает, "добавляют", что конструктора вызывают. По крайней мере это - то, как я воображаю это.:)

6
задан 28 January 2010 в 05:49
поделиться

4 ответа

Взгляните на образец объекта типа . Также Google для этого я только что дал одну из первых ссылок, которые нашел...

Вы также можете посмотреть на образец отражения ....

0
ответ дан 17 December 2019 в 20:32
поделиться

Я бы просто использовал карту:

class Fish
{
  Map<String,String> attributes = new HashMap<String,String>();
  setBusterFish()
  {
    attributes.put("speed", "5");
    attributes.put("colour", "red");
    attributes.put("hunger", "10");
    attributes.put("name", "buster");
  }
}
1
ответ дан 17 December 2019 в 20:32
поделиться

Эта статья довольно интересная в отношении размера стека http://www.embedded.com/Columns/technalinsights/47101892?_requestid=27362

Да, иначе Другое вещи зависит. Извините, что я был настолько расплывчатым. Вы также можете выкопать какой-код в коллекции GCC для тестирования размера стека.

-121--3383567-

Пусть пользователь определяет значения атрибута экземпляра, скажем, класса Fisspecies, и предоставляют рыбные четки метод Createfish, которые создают рыбу этого вида (то есть имеющие эти значения атрибута). Отслеживание всех объектов Fisspecies в списке предоставляет вам возможность управлять объектами Fisspecies и создавать рыбные объекты данных видов.

Если я правильно понимаю ваш вопрос, то я считаю, что осложняют вещи больше, чем это ошибка.

0
ответ дан 17 December 2019 в 20:32
поделиться

Java - это язык OO, и он имеет дело в классах и объектах. Заманчивое, наивное решение было бы заключаться в том, чтобы ваша программа посвящена «классам» рыбы, подобных тому, что она имеет дело с классами ничего, то есть для создания некоторого кода Java и позволить компилятору и загрузчику представить его в среду выполнения.

Этот подход может быть сделан для работы, с некоторой неловкостью. По сути, кодирование ваших «динамических классов Java», вероятно, будет в конечном итоге намного больше и сложно, чем ваше задание на самом деле намерено.

Вам действительно нужно только сделать это, если у вас на самом деле будут разные атрибуты (не только разные значения этих атрибутов) для вашей другой рыбы; И даже тогда есть простые решения.

Для того, что просят, я думаю, вам действительно нужен только один класс . Когда пользователь определяет новый, то, что он действительно определяет, являются значениями атрибута.

Если вы действительно хотите новых и динамических атрибутов, то вы можете пройти долгий путь, используя E.g. HASHMAP для хранения пар / значений. Вы можете позволить пользователю добавлять «Ноги» / «4» , а затем распечатайте, что новый атрибут AS - есть; Но вы не могли заставить рыбу прогуляться по этим ногам, потому что вы пропустите кодировку для работы с новым атрибутом.

1
ответ дан 17 December 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: