1 / 29

Объектно-ориентированное программирование

Объектно-ориентированное программирование. Стили программирования Основные принципы объектно-ориентированного программирования Библиотека визуальных компонентов. Стили программирования.

Download Presentation

Объектно-ориентированное программирование

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Объектно-ориентированное программирование Стили программирования Основные принципы объектно-ориентированного программирования Библиотека визуальных компонентов

  2. Стили программирования • стиль программирования -внутренне согласованная совокупность базовых конструкций программ и способов их композиции, обладающая общими фундаментальными особенностями • методологияпрограммирования - совокупность соглашений о том, какие базовые концепции языков программирования и какие их сочетания считаются приемлемыми или неприемлемыми для данного стиля

  3. Методики состоят из следующих компонентов • поощрения (или прямые предписания) использования некоторых базовых концепций программирования • запрещения (или ограничения) применения некоторых других базовых концепций • требования и рекомендации по оформлению и документированию программ • совокупность инструментальных и организационных средств, поддерживающих все вышеперечисленные требования и рекомендации

  4. Основные стили программирования • процедурный (императивный) • функциональный (аппликативный) • логический (реляционный) • объектно-ориентированный

  5. Процедурное программирование • Программа состоит из последовательности операторов, задающих процедуру решения задачи • Типичными операторами являются операторы присваивания, передачи управления (ветвления), ввода-вывода и циклы • Основным является оператор присваивания, служащий для изменения содержимого областей памяти • Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной

  6. Функциональное программирование • программа составляется таким образом, что в ней единственным действием является вызов функции • единственным способом расчленения программы на части является введение имени для функции и задание для этого имени выражения, вычисляющего значения функции • никаких ячеек памяти, ни операторов присваивания, ни циклов, ни передачи управления

  7. Логическое программирование • программа представляет собой совокупность определений отношений между объектами • решение проблемы выполняется с помощью механизмов логического вывода • в логическом программировании нужно только определить правила, на которых основывается алгоритм, а не определять последовательность шагов, которые требуется выполнить

  8. Объектно-ориентированное программирование • в основе лежит понятие объекта: объект = данные + процедуры • каждый объект интегрирует в себе некоторую структуру данных и доступные только ему процедуры обработки этих данных • заключается в выборе имеющихся или создании новых объектов и организации взаимодействия между ними

  9. Основные принципы объектно-ориентированного программирования Основными элементами: • абстрагирование • инкапсуляция • модульность • иерархия

  10. Абстрагирование – выделение существенных характеристик некоторого объекта, которые отличают его от всех других видов объектов • Инкапсуляция – процесс отделения друг от друга отдельных элементов объекта, определяющих его устройство и поведение • Модульность – свойство программы, связанное с возможностью её декомпозиции на ряд внутренне связных, но слабо связанных между собой модулей • Иерархия –упорядоченная система абстракций, расположение их по уровням

  11. Основные понятия объектно-ориентированного программирования Объект Класс • осязаемая сущность, предмет или явление, имеющие чётко определяемое поведение • обладает состоянием, поведением и индивидуальностью • множество объектов, связанных общностью структуры и поведения • включает в себя: атрибуты, отношения с другими классами и операциями

  12. Свойства объекта • Состояние объекта характеризуется перечнем всех возможных свойств данного объекта и текущими значениями каждого из этих свойств • Поведение определяет воздействие объекта на другие объекты и его реакцию на запросы от других объектов • Индивидуальность – свойства объекта, отличающие его от всех других объектов

  13. Свойства класса • Атрибут – поименованное свойство класса, определяющее диапазон допустимых значений, которые могут принимать экземпляры данного свойства • public (общий, открытый) – атрибут будет виден всеми остальными классами; • private (закрытый, секретный) – атрибут не виден никаким другим классом; • protected (защищённый) – атрибут доступен только самому классу и его потомкам в иерархии наследования • Операция – это реализация услуг, которую можно запросить у любого объекта данного класса • методы • интерфейсы

  14. Полиморфизм – это способность скрывать множество различных реализаций под единственным общим интерфейсом • Наследование означает построение новых классов на основе существующих с возможностью добавления или переопределения свойств

  15. Библиотека визуальных компонентов • Библиотека визуальных компонентов (Visual Component Library – VCL) содержит большое количество классов, предназначенных для быстрой разработки приложений

  16. Базовые классы VCL

  17. Класс TObject обеспечивает выполнение важнейших функций "жизнедеятельности" любого объекта • Класс TPersistent обеспечивает возможность объектов взаимодействовать друг с другом и процессами • Класс TComponent реализует механизмы, обеспечивающие взаимодействие компонентов со средой разработки (Палитрой компонентов, Инспектором объектов) • Класс TControl обеспечивает функционирование визуальных компонентов • Класс TWinControl обеспечивает создание оконных элементов управления • Класс TCustomControl обеспечивает создание различных нестандартных типов оконных элементов управления Windows: редакторов, списков и т. д. • Класс TGraphicControl обеспечивает создания неоконных (графических) элементов управления: Label, Image, Shape и т.д.

  18. Класс TObject • Класс TObject является родоначальником всей иерархии классов VCL • Он реализует функции, которые обязательно будет выполнять любой объект • Основные методы: • Create – создание объекта • Destroy – удаление объекта • Free – удаление объекта, созданного методом Create

  19. Процесс создания объекта включает • выделение области адресного пространства • установку указателя на экземпляр объекта • задание начальных значений свойств • выполнение установочных действий, связанных с назначением объекта

  20. Для уничтожения экземпляра объекта предназначены методы Destroy и Free • Метод Destroyявляется деструктором и обеспечивает освобождение всех занимаемых экземпляром объекта ресурсов • Метод Freeвызывает деструктор, но перед этим проверяет, чтобы указатель на экземпляр объекта был не пустым. Это позволяет избежать серьезных ошибок • Если объект является владельцем других объектов, то его метод Free автоматически вызовет эти же методы для всех объектов

  21. Каждый объект должен содержать некоторую информацию о себе, которая используется приложением и средой разработки • Метод Classlnfo – возвращает указатель на таблицу информации времени выполнения (RTTI) • Функция ClassName – возвращает имя типа объекта, которое может быть использовано для идентификации. • Метод ClassNamels (Name)– позволяет определить, является ли данный объект того типа, имя которого передано в параметре Name

  22. Программирование для Windows основано на событиях. Каждое приложение и каждый программный объект должны уметь реагировать на сообщение о событиях и рассылать сообщения • Метод Dispatch – осуществляет обработку сообщений, поступающих объекту. Он определяет, сможет ли объект обработать сообщение при помощи собственных обработчиков событий. В случае отсутствия методов сообщение передается аналогичному методу класса-предка

  23. Класс TPersistent • Класс TPersistent содержит базовые методы копирования атрибутов одного объекта в другой и чтения/записи информации об объекте в файл формы • Метод Assign(Source) осуществляет копирование свойств и атрибутов из объекта Source в объект, вызвавший метод • Для обеспечения взаимодействия объектов со средой разработки предназначен метод GetNamePath. Он возвращает имя объекта для передачи его в Инспектор объектов

  24. Класс TComponent • Класс TComponent является общим предком всех компонентов VCL • Он используется в качестве основы для создания невизуальных компонентов и реализует основные механизмы, которые обеспечивают функционирование любого компонента

  25. Свойство Nameуказывает имя компонента, с помощью которого программист обращается к нему при написании кода • Свойство Tagявляется вспомогательным и не влияет на работу компонента. Оно было сделано для удобства разработчиков, которые могут присваивать ему значения по своему усмотрению • Свойство ComponentCount указывает количество подчиненных компонентов • Свойство Owner указывается предка компонент • Свойство ComponentIndex указывает положение компонента в списке предка

  26. Свойство ComponentStateуказывает текущее состоянии компонента. Состояние может измениться в результате получения компонентом некоторого сообщения, действий разработчика, выполнения акции и т. д. • csLoading – компонент загружается • csReading – компонент загружает значения своих свойств • csWriting – компонент сохраняет значения своих свойств • csDestroying – уничтожение компонента • csDesigning – компонент находиться на форме и доступен инструментам Редактора форм • csAncestor – компонент находиться на форме • csUpdating – компонент обновляется • CsFixups - компонент связан с компонентом другой формы, которая еще не загружена в среду разработки • csFreeNotification – если это состояние устанавливается, другие компоненты, связанные с данным, уведомляются о его уничтожении • csInline – определяет компонент верхнего уровня в иерархии • csDesignInstance – определяет корневой компонент на этапе разработки

  27. Вслед за классом TComponent в иерархии базовых классов располагается группа из трех классов, которые обеспечивают создание различных визуальных компонентов • Визуальные компоненты – это разнообразные стандартные для Windows и специальные элементы управления • Визуальные компоненты должны уметь отобразить себя на экране монитора и реагировать на целый ряд событий (реакция на мышь и клавиатуру, движение курсора и т. д.). Для этого в них встроен специальный механизм, обеспечивающий взаимодействие компонентов с графической подсистемой ОС (GUI) • Существует несколько типов элементов управления, которые существенно отличаются по своим возможностям и поведению. Каждому типу соответствует собственный класс иерархии

  28. Класс TWinControl обеспечивает использование в Delphi оконных элементов управления. Они должны уметь • получать и передавать фокус управления во время выполнения приложения • воспринимать управляющие воздействия от мыши и клавиатуры • уметь размещать на себе другие элементы управления

  29. Класс TCustomContrlобеспечивает использование нестандартных элементов управления. Он существенно облегчает использование элементов управления, т. к. позволяет управлять отрисовкой компонента путём использования канвы вместо обращения к системным функциям GUI • Для обеспечения создания не оконных элементов управления непосредственно от класса TControl порожден класс TGraphicControl. Его потомки не могут получать фокус, но используют для визуализации канву

More Related