Полиморфизм
Когда будет происходить обращение к переменной, относящейся к классу «КАМАЗ», и вызов унаследованного метода «двигаться», программе придется решить, какой конкретно метод надо вызвать: метод класса «автомобиль», «грузовой автомобиль» или «КАМАЗ». В соответствии с принципом полиморфизма решение принимается в зависимости от типа переменной, вызывающей этот метод. То есть, если переменная описана как относящаяся к типу «КАМАЗ», будет вызван метод «двигаться», определенный именно для КАМАЗа.
Инкапсуляция
Инкапсуляция позволяет разграничить доступ разработчиков к различным полям и свойствам класса, примерно так, как это сделано в модулях Delphi, когда из других модулей видима только интерфейсная часть. Точно так же и внутри классов некоторые поля и методы можно сделать свободно доступными для использования (видимыми) в любом месте программы, а другие поля и методы сделать доступными только внутри текущего модуля и собственных методов класса. Это позволяет скрыть внутри описания различные характеристики и возможности класса, чтобы сосредоточить внимание разработчиков, повторно использующих этот класс, на его важнейших свойств.
Кроме того, желательно не допускать бесконтрольного изменения значений свойств, так как это может привести к нарушению запланированной и сбалансированной взаимосвязи между свойствами. Например, нельзя бездумно изменить значение свойства «текущая скорость», просто записав в него новое число. Надо вызвать соответствующий метод, который учтет изменение потребления бензина и выполнит ряд дополнительных действий. Хорошим стилем программирования считается недоступность всех полей и свойств объекта для прямого изменения. Вместо этого создаются методы, позволяющие получить значение поля и занести в него новое значение. Сами поля помещаются в скрытую часть класса.
События
Помимо этих трех фундаментальных возможностей объектно-ориентированного программирования, в среде Delphi реализована новая характеристика объекта – возможность обработки так называемых сообщений (или событий), получаемых от системы Windows или самой программы. Этот принцип лежит в основе работы всех визуальных компонентов Delphi, которые обрабатывают различные события, возникающие в процессе выполнения программы.
Метод
Методы класса (процедуры и функции, объявление которых включено в описание класса) выполняют действия над объектами класса. Для того чтобы метод был выполнен, необходимо указать имя объекта и имя метода, отделив одно имя от другого точкой. Например, инструкция
professor. Show;
вызывает применение метода Show к объекту professor. Фактически инструкция применения метода к объекту - это специфический способ записи инструкции вызова процедуры.
Методы класса определяются в программе точно так же, как и обычные процедуры и функции, за исключением того, что имя процедуры или функции, являющейся методом, состоит из двух частей: имени класса, к которому принадлежит метод, и имени метода. Имя класса от имени метода отделяется точкой.
Внешне применение свойств в программе ничем не отличается от использования полей объекта. Однако между свойством и полем объекта существует принципиальное отличие: при присвоении и чтении значения свойства автоматически вызывается процедура, которая выполняет некоторую работу.
В программе на методы свойства можно возложить некоторые дополнительные задачи. Например, с помощью метода можно проверить корректность присваиваемых свойству значений, установить значения других полей, логически связанных со свойством, вызвать вспомогательную процедуру.
Классы и объекты Delphi
Для реализации интерфейса Delphi использует библиотеку классов, которая содержит большое количество разнообразных классов, поддерживающих форму и различные компоненты формы (командные кнопки, поля редактирования и т. д.).
Во время проектирования формы приложения Delphi автоматически добавляет в текст программы необходимые объекты. Если сразу после запуска Delphi просмотреть содержимое окна редактора кода, то там можно обнаружить следующие строки:
type
TForm1 = class(TForm)
private
{Private declarations}
public
{Public declarations}
end;
var
Form1: TForm1;
Это описание класса исходной, пустой формы приложения и объявление объекта - формы приложения.
Когда программист, добавляя необходимые компоненты, создает форму, Delphi формирует описание класса формы. Когда программист создает функцию обработки события формы или ее компонента, Delphi добавляет объявление метода в описание класса формы приложения.
Помимо классов визуальных компонентов в библиотеку классов входят и классы так называемых невизуальных (невидимых) компонентов, которые обеспечивают создание соответствующих объектов и доступ к их методам и свойствам. Типичным примером невизуального компонента является таймер (тип TTimer) и компоненты доступа и управления базами данных.
Компонент ListBox
З
начок
компонента ListBox находится на вкладке
Стандартные (Standard). Добавляется
список к форме приложения точно так же,
как и другие компоненты, например,
командная кнопка или поле редактирования.
В таблице 23.2 приведены свойства компонента
ListBox.
Таблица 23.2. Свойства компонента ListBox
Свойство |
Определяет |
Name |
Имя компонента. В программе используется для доступа к свойствам компонента |
Items |
Элементы списка |
ItemIndex |
Номер выбранного элемента списка. Номер первого элемента списка равен нулю |
Left |
Расстояние от левой границы списка до левой границы формы |
Top |
Расстояние от верхней границы списка до верхней границы формы |
Height |
Высоту поля списка |
Width |
Ширину поля списка |
Font |
Шрифт, используемый для отображения элементов списка |
Parent-Font |
Признак наследования свойств шрифта родительской формы |
Рисунок
23.1. Кнопка запуска редактора
списка
Рисунок
23.2. Диалоговое окно Редактор
строк
(String
List Editor)
Наибольший интерес представляют свойства Items и ItemIndex. Свойство Items содержит элементы списка.
Свойство ItemIndex задает номер выбранного элемента списка. Если ни один из элементов не выбран, то значение свойства равно минус единице.
Список может быть сформирован во время создания формы или во время работы программы.
Для формирования списка во время создания формы надо в окне Инспектора объектов (Object Inspector) выбрать свойство Items и щелкнуть на кнопке запуска редактора списка строк (рис.23.1).
В открывшемся диалоговом окне Редактор строк (String List Editor) (рис.23.2) нужно ввести список, набирая каждый элемент списка в отдельной строке. После ввода очередного элемента списка для перехода к новой строке необходимо нажать клавишу <Enter>. После ввода последнего элемента клавишу <Enter> нажимать не надо. Завершив ввод списка, следует щелкнуть на кнопке ОК.
Перерыв - 10 мин
Совместная работа студента с преподавателем - 25 мин
После выполнения практической части работы, преподаватель проверяет правильность и последовательность действий студентов, достигли они конечного результата. Затем преподаватель проводит опрос студентов с анализом темы. Выясняет практическое его применение.
Контроль заключительного уровня знании - 20 мин
Преподаватель проводит анализ результатов практической работы студентов, выясняет осознанно ли выполнили работу. Затем студенты сдают тесты для контроля знаний.
Контроль
Вопросы:
1. Условный оператор (if ).
2. Оператор выбора (case).
3. Что такое подпрограмма?
4. Что такое формальный и фактический параметры?
5. Что такое функция?
6. Каков общий вид инструкции обращения к функции?
7. Как объявляют функцию?
8. Что такое процедура?
9. Как объявляют процедуру?
10. Какова инструкция вызова процедуры?
11. Три принципа объектного программирования: наследование, полиморфизм, инкапсуляция.
12. Что такое класс?
13. Что такое деструктор и конструктор?
14. Что такое событие?
15. Что такое метод?
16. В какой вкладке палитры компонентов находится компонент ListBox?
17. Что содержит свойство Items компонента ListBox?
18. Назначение свойства ItemIndex компонента ListBox.
Тесты: См. Сборник тестовых заданий по «Информатике», тема « Основы программирование языка Delphi»
- Общая оценка знаний - 5 мин
Преподаватель анализирует компетенций знаний, практические навыкинавыки
Студентов по данной теме, проводит разбор общих ошибок допущенных студентами при выполнении заданий. Затем преподаватель анализирует достижения и недостатки каждого студента с выставлением итоговой оценки в журнал по двум параметрам (за знания и практические навыки).
Литература:
1. С. И. Бобровский. Учебный курс Delphi7. Питер, 2006г.
2. Г.Г. Рапаков, С.Ю. Ржеуцкая. Программирование на языке Паскаль. Санкт-Петербург, 2005г.
3. Н.Культин. Учебный курс Delphi. Санкт-Петербург, 2005г.
4. Н.Культин. Delphi в задачах и примерах. Санкт-Петербург, 2005г.
5. Е.Р. Алексеев, О.В. Чесноков. Шаг за шагом. Москва, 2005г.
стр -
