Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Оно.doc
Скачиваний:
6
Добавлен:
31.07.2019
Размер:
98.82 Кб
Скачать
  1. Сущность, назначение и принципы объектно-ориентированного программирования.

В центре ООП находится понятие объекта. Объект — это сущность, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные. Данные объекта скрыты от остальной программы. Сокрытие данных называется инкапсуляцией.

Наличие инкапсуляции достаточно для объектности языка программирования, но ещё не означает его объектной ориентированности — для этого требуется наличие наследования.

Но даже наличие инкапсуляции и наследования не делает язык программирования в полной мере объектным с точки зрения ООП. Основные преимущества ООП проявляются только в том случае, когда в языке программирования реализован полиморфизм; то есть возможность объектов с одинаковой спецификацией иметь различную реализацию.

К базовым принципам объектно-ориентированного стиля программирования относятся:

  1. пакетирование или инкапсуляция ;

  2. наследование ;

  3. полиморфизм ;

  4. передача сообщений.

Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.

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

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

  1. Правила определения программных объектов: обобщенная структура определения объекта, constructor, destructor, методы объекта, структура программы, динамические объекты, варианты определения и использования объектов в программе.

  1. Виртуальные методы: назначение, модель, абстрактные объекты, таблицы виртуальных методов.

Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.

Виртуальные методы — один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом базовый класс определяет способ работы с объектами и любые его наследники могут предоставлять конкретную реализацию этого способа. В некоторых языках программирования, например в Java, нет понятия виртуального метода, данное понятие следует применять лишь для языков, в которых методы родительского класса не могут быть переопределены по умолчанию, а только с помощью некоторых вспомогательных ключевых слов. В некоторых же (как, например, в Python), все методы — виртуальные.

Базовый класс может и не предоставлять реализации виртуального метода, а только декларировать его существование. Такие методы без реализации называются «чистыми виртуальными» (перевод англ.  pure virtual) или абстрактными. Класс, содержащий хотя бы один такой метод, тоже будет абстрактным. Объект такого класса создать нельзя (в некоторых языках допускается, но вызов абстрактного метода приведёт к ошибке). Наследники абстрактного класса должны предоставить реализацию для всех его абстрактных методов, иначе они, в свою очередь, будут абстрактными классами.

Для каждого класса, имеющего хотя бы один виртуальный метод, создаётся таблица виртуальных методов. Каждый объект хранит указатель на таблицу своего класса. Для вызова виртуального метода используется такой механизм: из объекта берётся указатель на соответствующую таблицу виртуальных методов, а из неё, по фиксированному смещению, — указатель на реализацию метода, используемого для данного класса. При использовании множественного наследования или интерфейсов ситуация несколько усложняется за счёт того, что таблица виртуальных методов становится нелинейной.

  1. Назначение и концепции визуального программирования; обработка событий, обобщенная структура программы анализа событий, схема создания ППП с помощью системы визуального программирования.

  1. Назначение и характеристики системы визуального программирования Delphi.

  1. Интерфейс разработчика в системе Delphi: компоненты интерфейса, страницы палитры компонентов.

  1. Классы программных объектов: определение класса, свойства класса, иерархия классов системы Delphi.

  1. Структура прикладной программы, создаваемой в системе Delphi, и состав программного проекта.

  1. Общие свойства компонентов: группы свойств, изменение значений свойств, примеры свойств и значений.

  1. Формы и их свойства: компоненты типа TForm; назначение свойства формы, применение модальных форм.

  1. Средства системы Delphi для работы с файлами бах данных: утилиты BDE, SQL Links, BDE Administrator и др.; невизуальные и визуальные компоненты для работы с БД.

  1. Организация взаимодействия прикладного ПО с БД: варианты локальной БД, использование файл-сервера и системы «клиент-сервер».

  1. Создание структуры таблиц (файлов) БД в системе Delphi: обобщенная схема взаимодействия прикладного ПО с БД; форматы файлов БД; создание структуры записи; типы полей ключевые поля; свойства полей.

  1. Создание в среде Delphi прикладных программ для работы с таблицами БД: компоненты пользовательского интерфейса, схемы взаимодействия компонентов.