Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование / Визальное_программирование_лекция.doc
Скачиваний:
53
Добавлен:
07.06.2015
Размер:
57.34 Кб
Скачать

Лекция № 1 delphi (конспекты лекций)

Введение в Delphi. Объектно-ориентированная методология разработки больших программных комплексов

  1. Объектно-ориентированная методология разработки программ

По определению Гради Буча: “Объектно-ориентированное программирование (ООП) – это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса (типа особого вида), а классы образуют иерархию на принципах наследуемости”.

История объектно-ориентированного программирования берет свое начало в конце 60-х годов. Компьютерный центр в Норвегии создал первый объектно-ориентированный язык программирования Simula, предназначенный для моделирования ситуаций в реальном мире. Основная особенность языка Simula состояла в том, что программа была организована по объектам программирования. Объекты содержат инструкции (называемые методами) и данные (называемые переменными), которые определяют поведение объекта. В процессе моделирования объект выполняет свое стандартное поведение и, в случае необходимости, изменяет данные для отражения влияния назначенного ему действия.

Существует достаточно много объектно-ориентированных языков программирования, наиболее популярными из которых в настоящее время являются Smalltalk, C++, Delphi, Java, Visual Basic. Визуальное программирование предоставляет широкие возможности использования прототипов объектов (классы), которые можно настроить по своему усмотрению.

В среде Delphi реализована новая характеристика (помимо инкапсуляции, полиморфизма и наследования) объекта – возможность обработки так называемых сообщений (или событий), получаемых от ОС Windows или самой программы. Этот принцип лежит в основе работы всех визуальных компонентов Delphi, которые обрабатывают различные события, возникающие в процессе выполнения программы. Событие представляет собой некоторое действие, которое активизирует стандартную реакцию объекта. В качестве события могут рассматриваться нажатие кнопки мыши, выбор пункта меню, открытие таблицы и т.д. Порядок выполнения действий определяется прежде всего событиями, возникающими в системе, и реакцией на них объектов.

Специалистам удалось выделить большой набор объектов, которые нужны при создании различных приложений. Эти объекты могут неоднократно использоваться без расходования времени на их программирование.

В Паскале имеется четкое разграничение между понятиями объекта и класса. Класс – это тип данных (например, Real или String), а объект – конкретный существующий в памяти компьютера экземпляр класса, переменная соответствующего типа. Вместо ключевого слова object правильно использовать ключевое слово class.

Классы имеют поля (как тип данных record), свойства (напоминают поля, но имеют дополнительные описатели, определяющие механизмы записи и считывания данных, что позволяет повысить строгость декларирования внутренней структуры класса) и методы (подпрограммы, которые обрабатывают поля и свойства класса.

Когда описывается переменная типа class, для ее полей и свойств в памяти выделяется соответствующий объем (как и для записей), но машинный код, в который транслируются методы класса, находится в единственном экземпляре, так как меняться он не может, хранить несколько одинаковых копий подпрограмм не имеет смысла. Когда объект создается, однократно вызывается специальный метод называемый конструктором. В нем выполняются различные действия по начальной инициализации полей объекта. Когда объект уничтожается (удаляется из памяти), вызывается другой метод – деструктор, который выполняет дополнительные действия по освобождению памяти, если это необходимо. Вызов конструктора и деструктора происходит автоматически.

Переменная, описанная как класс, фактически является указателем на экземпляр класса. Это сделано для повышения эффективности работы с ним. Однако при использовании таких переменных применять операции работы с указателями (^, @) не надо. К ним обращаются как к обычным переменным, а к членам класса (полям, свойствам и методам) как к полям записи.