КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Interface
Begin Begin Begin Type Begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.
Первый оператор инициализирует приложение, Второй – создает объект формы Form1, Третий – начинает выполнение приложения. В объекте Application собраны данные и подпрограммы, необходимые для нормального функционирования Windows-программы в целом. Delphi автоматически создает объект-программу Application для каждого нового проекта. С помощью его метода Initialize программа осуществляет ряд вспомогательных действий, необходимых для работы под управлением операционной системы Windows. Строка
Application.Initialize;
означает обращение к методу Initialize объекта Application. Прочитав эту строку, компилятор создаст код, который заставит процессор перейти к выполнению большого фрагмента программы, написанного для нас разработчиками Delphi. После выполнения этого фрагмента (т.е. после выхода из подпрограммы) управление процессором перейдет к следующей строке программы, в которой вызывается метод CreatеForm, и т.д. Метод CreatеForm объекта Application создает и показывает на экране окно главной формы, а метод Run реализует бесконечный цикл получения и обработки поступающих от Windows сообщений о действиях пользователя. Когда пользователь щелкнет по кнопке Close, Windows передаст программе специальное сообщение, которое, в конечном счете, заставит программу прекратить работу и освободить назначенные ей системные ресурсы (память и процессор). Следует сказать, что файл проекта полностью формируется самой Delphi и в большинстве случаев не предназначен для редактирования. Более того, Delphi очень болезненно реагирует на попытки изменить текст этого файла и упрямо выбрасывает из него все, что не вставлено ею самой. Именно по этой причине файл проекта имеет особое расширение и обычно не показывается в окне кода. При разработке сложных проектов этот файл можно использовать для пояснения назначения тех или иных входящих в него форм.
ЗАДАЧА С ИСПОЛЬЗОВАНИЕМ ПОЛИМОРФИЗМА Полиморфизм – это возможность использовать одинаковые имена для методов, входящих в различные классы. Концепция полиморфизма обеспечивает в случае применения метода к объекту использование именно того метода, который соответствует классу объекта. Пусть определены 3 класса, один из которых является базовым для двух других:
Tperson=class { базовыйкласс } fname:string; constructor Create(name:string); function info:string; virtual; end; Tstud=class(Tperson) { класс– потомок } fgr:integer; { поле для номера группы } constructor Create(name:string;gr:integer); function info:string; override; end; Tprof=class(Tperson) { класс– потомок } fdep:string;; { поле для названия кафедры } constructor Create(name:string; dep:string); function info:string; override; end; В каждом из этих классов определен метод info. В базовом классе при помощи директивы virtual метод info объявлен виртуальным. Это дает возможность классу–потомку произвести замену виртуального метода своим собственным. В каждом классе–потомке определен свой метод info, который замещает соответствующий метод родительского класса и отмечается директивой override. Определим метод info для каждого класса индивидуально: function Tperson.info:string; result:=’’; end;
function Tstud.info:string; result:=fname+' gruppa '+inttostr(fgr); end; function Tprof.info:string; result:=fname+' department '+fdep; end; Далее в программе список всех людей можно представить массивом объектов класса Tperson. Отметим, что объект – указатель. Список людей имеет вид:
list: array[1..szl] of Tperson; { szl – размер списка } Объявить подобным образом список можно потому, что OP позволяет присвоить указателю на родительский класс значение указателя на класс– потомок. Поэтому элементами массива list могут быть как объекты класса Tstud, так и объекты класса Tprof.
Вывод списка можно осуществить применением метода info к элементам массива, например:
St:= ’’; for i:=1 to szl do if list[i]<>nil then St:=St+list[i].info+#13; ShowMessage('Spisok:'+#13+St); { вывод в окно сообщения}
Во время работы программы каждый элемент массива может содержать как объект типа Tstud, так и объект типа Tprof. Концепция полиморфизма обеспечивает применение к объекту именно того метода info, который соответствует типу объекта. Напишем программу, которая использует объявления классов Tperson, Tstud, Tprof, формирует список студентов и преподавателей и выводит полученный список в окно сообщения. Будем использовать визуальное программирование. Окно формы будет иметь вид:
GroupBox1—это компонент, объединяющий группу компонентов, связанных по смыслу. В данном случае он включает 2 зависимых переключателя – RadioButton1 и RadioButton2
Текст модуля кода программы: unit Polimorfizm;
Дата добавления: 2015-07-02; Просмотров: 360; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |