Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Лекция Основные понятия объектно-ориентированного
Объектно-ориентированное программирование (сокращенно ООП) — это в один из самых распространенных подходов к построению сложных программ и систем.
В любой программе Windows можно увидеть окно с множеством кнопок, разделов меню, окон редактирования, списков и т.п. Все это объекты. Причем сами по себе они ничего не делают. Они ждут каких-то событий — нажатия пользователем клавиш или кнопок мыши, перемещения курсора и т.д. Когда происходит подобное событие, объект получает сообщение об этом и как-то на него реагирует: выполняет некоторые вычисления, разворачивает список, заносит символ в окно редактирования. Такая программа Windows и есть объектно-ориентированная программа или приложение.
Такая программа — это не последовательность операторов и не жесткий алгоритм. Объектно-ориентированная программа — это совокупность объектов и способов их взаимодействия. Отдельным (и главным) объектом при таком подходе во многих случаях можно считать пользователя программы. Он же служит и основным, но не единственным, источником событий, управляющих приложением.
Основным понятием ООП является объект. Его можно определить как некую совокупность данных и способов работы с ними. Данные можно рассматривать как поля записи. Это характеристики объекта. Пользователь и другие объекты программы должны иметь возможность читать эти данные объекта, как-то их обрабатывать.
Важнейшее значение имеют принципы инкапсуляции, скрытия данных, полиморфизма и наследования.
Инкапсуляция – объединение в объекте данных и кода. Внутри объекта данные могут быть открытыми – public и закрытыми – private. Закрытые данные и код доступны только частям этого объекта и недоступны для тех частей программы, которые существуют вне объекта. Открытые данные и код доступны для других частей программы.
Принцип скрытия данных заключается в том, что внешним объектам и пользователю прямой доступ к данным, как правило, запрещен. Это делается из двух соображений.
Во-первых, для надежного функционирования объекта надо поддерживать целостность и непротиворечивость его данных. Иначе внешний объект или пользователь могут занести в объект такие неверные данные, что он начнет функционировать с ошибками.
Во-вторых, необходимо изолировать внешние объекты от особенностей внутренней реализации данных. Для внешних потребителей данных должен быть доступен только пользовательский интерфейс — описание того, какие имеются данные и функции и как их использовать, а внутренняя реализация — это дело разработчика объекта. При таком подходе разработчик может в любой момент модернизировать объект, изменить структуру хранения и форму представления данных, но, если при этом не затронут интерфейс, внешний потребитель этого даже не заметит. И, значит, во внешней программе и в поведении пользователя ничего не придется менять.
Чтобы выдержать принцип скрытия данных, в объекте обычно определяются процедуры и функции, обеспечивающие все необходимые операции с данными: их чтение, преобразование, запись. Эти функции и процедуры называются методами и через них происходит общение с данными объекта.
Совокупность данных и методов их чтения и записи называется свойством. Свойства можно устанавливать в процессе проектирования, их можно изменять программно во время выполнения программы. Все общение с данными происходит через методы их чтения и записи. Это происходит и в процессе проектирования, когда среда проектирования Delphi запускает в нужный момент эти методы, и в процессе выполнения приложения, поскольку компилятор Delphi незримо для разработчика вставляет в нужных местах программы вызовы этих методов.
Помимо методов, работающих с отдельными данными, в объекте имеются методы, работающие со всей их совокупностью, меняющие их структуру. Таким образом, объект является совокупностью свойств и методов.
Средой взаимодействия объектов (как бы силовым полем, в котором существуют объекты) являются сообщения, генерируемые в результате различных событий. События наступают, прежде всего, вследствие действий пользователя — перемещения курсора мыши, нажатия кнопок мыши или клавиш клавиатуры. Но события могут наступать и в результате работы самих объектов. В каждом объекте определено множество событий, на которые он может реагировать. В конкретных экземплярах объекта могут быть определены обработчики каких-то из этих событий, которые и определяют реакцию данного экземпляра объекта, к написанию этих обработчиков, часто весьма простых, и сводится, как будет видно далее, основное программирование с помощью Delphi.
Итак – объект это совокупность свойств и методов, а также событий, на которые он может реагировать.
Условно это изображено на рис. 1.1. Внешнее управление объектом осуществляется через обработчики событий. Эти обработчики обращаются к методам и свойствам объекта. Начальные значения данных объекта могут задаваться также в процессе проектирования установкой различных свойств. В результате выполнения методов объекта могут генерироваться новые события, воспринимаемые другими объектами программы или пользователем.
Но программа это не только фиксированная совокупность объектов. В процессе работы объекты могут создаваться и уничтожаться. То есть, структура программы является динамическим образованием, меняющимся в процессе выполнения. Основная цель создания и уничтожения объектов — экономия ресурсов компьютера и, прежде всего, памяти. Несмотря на бурное развитие вычислительной техники, память, наверное, всегда будет лимитировать возможности сложных приложений. Это связано с тем, что сложность программных проектов растет теми же, если не более быстрыми, темпами, что и техническое обеспечение. Поэтому от объектов, которые не нужны на данной стадии выполнения программы, нужно освобождаться. При этом освобождаются и выделенные им области "памяти, которые могут использоваться вновь создаваемыми объектами, Простой пример этого — окно-заставка с логотипом, появляющееся при запуске многих приложений. После начала реального выполнения приложения эта заставка исчезает с экрана и никогда больше не появится в данном сеансе работы. Было бы варварством не уничтожить этот объект и не освободить занимаемую им память для более продуктивного использования.
Следовательно, во все объекты заложены методы их создания — конструкторы и уничтожения — деструкторы.
Конструкторы объектов срабатывают при запуске программы. Деструкторы всех объектов срабатывают при завершении его работы. Но нередко и в процессе выполнения новые объекты создаются и уничтожаются с помощью их конструкторов и деструкторов.
Включать объекты в свою программу можно двумя способами: вручную включать в нее соответствующие операторы (это приходится делать не очень часто) или путем визуального, программирования, используя заготовки — компоненты.
Дата публикования: 2015-06-12; Прочитано: 497 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!