![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
hellRaven |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.9.2008 Репутация: нет Всего: нет |
Посоветуйте, как во время выполнения программы создать/унаследовать новый класс по параметрам (название, количество каких либо переменных) прочитанных с формы.
В итоге должен быть сгенерирован новый класс и данные о нем нужно добавить в меню, для его использования Например: Есть класс геометрической фигуры, на его основе во время выполения мы создаем новый класс, указав количество и координаты точек. В итоге появляется новая фигура, которую мы можем нарисовать, выбрав из меню... |
|||
|
||||
mbasil |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
1. Для той задачи, которую вы нарисовали в
2. Задачу динамического создания классов можно решить, генерируя исходный код, компилировать его из программы (в JDK1.6 можно напрямую общаться с компилятором), а потом грузить их по имении. При этом все классы должны реализовывать один интерфейс или должны быть порождены от одного предка.
Только делать это надо тогда, когда вы полностью разобрались с ООП и стандартные решения Вам не подходят. |
||||
|
|||||
hellRaven |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.9.2008 Репутация: нет Всего: нет |
Спасибо, буду пробовать и разбираться, но
я бы рад создавать новый обьект, но преподаватель требует именно создание нового класса ![]()
можно про это поподробнее? |
||||||
|
|||||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
hellRaven, попробуйте уточнить задание у преподавателя, возможно у вас некоторое недопонимание друг друга. Все что Вы перечислили можно сделать и без создания нового класса, естественным и лёгким способом. |
|||
|
||||
hellRaven |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.9.2008 Репутация: нет Всего: нет |
Моего преподавателя с прошлого семестра вспоминают "добрым" словом за то, что но не принимает лабы, которые сделаны не так, как по его мнению они должны быть сделаны. Поэтому я сразу же уточнил, действительно ли надо создавать новый класс. Оказалось что надо... но конкретно что-то советовать и объяснять не стал, а сразу отправил за книжки, скорее потому что он больше с++/с# гуру а с Java не очень дружит...
В книжках нашел упоминание о reflection но пока не вчитывался. Посоветуйте хотябы, в каком направлении копать... ![]() |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Может класс создать и нужно, но не во время выполнения?
|
|||
|
||||
susanin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 587 Регистрация: 7.10.2006 Где: Санкт-Петербург Репутация: 1 Всего: 7 |
можно попробовать создать новый класс в процессе выполнения с помощью механизма отражения...
|
|||
|
||||
mbasil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 2 Всего: 13 |
Позвольте уточнить. Создавать класс во время выполнения можно, но эта задача совсем непростая.
Использовать этот подход нужно в исключительных случаях - такой подход не является повседневным для разработчика. Он неэффективен и приведет к появлению хаоса в приложении. Удивительно, что "гуру" в с# предлагает начинающему такой подход - сам то он делал это ? Еще можно было бы представить, что "гуру" в С++ не понимает, во что пытается "окунуть" того, кому дал такую задачку. Но что касается "гуру" в С#, то это может означать что он либо хочет "завалить" на ней, либо слово "гуру" к нему не применимо. |
|||
|
||||
Keyo |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 10.4.2008 Репутация: нет Всего: нет |
нда... вот что заставляют делать детей в институте... а потом удивляемсо...
![]() |
|||
|
||||
hellRaven |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.9.2008 Репутация: нет Всего: нет |
![]() Задача действительно была завальная, мольбами всей группы добились ее упрощения ![]() Спасибо за ответы P.S. и мне даже интересно стало, если это так неэффективно то для каких целей нужно это использовать? и может всетаки пример ктонибудь продемонстрирует? ![]() |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Ну как же. Если программа сама пишет классы, то программист уже не нужен. Достаточно написать одно окошко, а дальше программа уже сама пусть классы создает и удаляет в зависимости от того, что пользователю надо. А если Spring использовать, то и окошко создавать не надо - хмл файла достаточно. ![]() Это сообщение отредактировал(а) COVD - 21.10.2008, 20:18 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |