![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, уважаемые форумчане!
Помогите мне в нелегком деле. Мне дали задания по Делфи создать свой собственный класс (любую прогу), но чтобы там применялась: - наследование - полиморфизм - инкапсуляция. Теорию я сам всю выучил до зубов, а на практике ничего не получается. Прошу у Вас помощи! С Уважением, Роман! |
#2
|
||||||||||||
|
||||||||||||
![]() Очень рекомендую учебник: "С. Бобровский. Delphi7. Учебный курс"
Примеры: 1) Инкапсуляция Добавляешь в проект два новых модуля Unit2 и Unit3; В Unit2 в раздел interface: Код:
Код:
ссылку на второй модуль Код:
Код:
Код:
Т.к функция F1 класса TOne объявлена в разделе private, то она видна только в даннов классе(ну и в модуле, где описан класс), о вот функции F2 и F3 можно свободно использовать. 3) Полиморфизм теперь в главный модуль: добавить ссылки на Unit2 и Unit3; и, например, по клику на кнопке: Код:
|
#3
|
||||
|
||||
![]() Создайте наследника от одного из стандартных классов и будет у вас сразу инкапсуляция и наследование. Для демонстрации полиморфизма нужно перекрыть один из виртуальных методов класса-предка.
Вот пример наследника TLabel, который по щелчку мыши открывает заданную страницу в браузере: Код:
Потом в главной форме пишем, например, так: Код:
Полиморфизм здесь в том, что переменная L объявлена как TLabel, тем не менее после присвоения ей значения типа TLinkLabel, она корректно вызывает переопределенный метод Click. Пример, конечно, абсолютно высосанный из пальца и не жызненный. |