
- •Вопросы к итоговому государственному междисциплинарному экзамену по дисциплине «Объектно-ориентированное программирование»
- •Объектно-ориентированное программирование как методология разработки программ. Структура объектно-ориентированной программы. Привести пример описания объектного типа.
- •Соотношение основных понятий ооп. Привести примеры программного обращения или описания основных понятий ооп.
- •Принципы объектно-ориентированного программирования. Понятие инкапсуляции, наследования и полиморфизма. Привести примеры программного описания.
- •2 Основные характеристические свойства понятий
- •Простое и множественное наследование. Правила наследования. Привести пример простого наследования.
- •Скрытие данных в объектном типе. Назначение директив private и public. Привести пример управления доступом к элементам класса.
- •Понятие виртуального метода. Назначение и отличие виртуальных и динамических методов. Правила вызова виртуальных методов. Привести пример объявления виртуального метода.
- •Выделение памяти под экземпляр объекта. Привести пример объявления и реализации конструктора и деструктора.
- •Исключительные ситуации в терминологии ооп. Глобальная и локальная обработка исключений. Привести пример использования операторов контроля исключительных ситуаций при локальной обработке.
- •Понятие проекта Delphi. Состав проекта Delphi. Основные файлы проекта, их характеристика. Привести примеры программного кода основных файлов проекта.
Вопросы к итоговому государственному междисциплинарному экзамену по дисциплине «Объектно-ориентированное программирование»
Объектно-ориентированное программирование как методология разработки программ. Структура объектно-ориентированной программы. Привести пример описания объектного типа.
Исторически сложилось так, что программирование возникло и развивалось как процедурное программирование, которое предполагает, что основой программы является алгоритм, процедура обработки данных.
Объектно-ориентированное программирование (ООП) - это методика разработки программ, в основе которой лежит понятие класса как некоторой структуры, описывающей совокупность однотипных объект реального мира, их поведение.
ООП основывается на методологии, согласно которой программа представляется в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
Задача, решаемая с использованием методики ООП, описывается в терминах классов и операций, производимыми над объектами этого класса. Программа при таком подходе представляет собой набор реализованных объектов и связей между ними. Другими словами можно сказать, что объектно-ориентированное программирование представляет собой метод программирования, который весьма близко напоминает наше поведение.
Основные средства объектно-ориентированного программирования представлены на рисунке 1.
Рисунок 1 – Основные средства ООП
Выделено четыре этапа объектно-ориентированного проектирования:
разработка диаграммы аппаратных средств системы обработки данных, показывающей процессоры, внешние устройства, вычислительные сети и их соединения;
разработка структуры классов, описывающих связь между классами и объектами;
разработка диаграмм объектов, показывающих взаимосвязи с другими объектами;
разработка внутренней структуры программного продукта
Достоинства и недостатки ООП
ООП – это методология программирования основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определённого класса (типа особого вида), а классы образуют иерархию на принципах наследования.
ООП обладает рядом преимуществ при создании больших программ. В частности к ним можно отнести:
использование более естественных с точки зрения повседневной практики понятий, простота введения новых понятий;
некоторое сокращение размера программ за счет того, что повторяющиеся (наследуемые) свойства и действия можно не описывать многократно, как это делается при использовании подпрограмм;
кроме того, использование динамических объектов позволяет более эффективно использовать оперативную память;
возможность создания библиотеки объектов;
сравнительно простая возможность внесения изменений в программу без изменения уже написанных частей, а в ряде случаев и без перекомпиляции этих написанных и уже скомпилированных частей, используя свойства наследования и полиморфизма;
возможность написания подпрограмм с различными наборами параметров, но имеющих одно и то же имя, используя свойство полиморфизма;
более четкая локализация свойств и поведения объекта в одном месте (используется свойство инкапсуляции), позволяющая проще разбираться со структурой программы, отлаживать ее, находить ошибки;
возможность разделения доступа к различным объектам программы и т.д.
Недостатки ООП обуславливаются следующим:
Освоение базовых концепций ООП не требует значительных усилий. Однако разработка библиотек классов и их использование требуют существенных трудозатрат.
Документирование классов – задача более трудная, чем это было в случае процедур и модулей.
В сложных иерархиях классов поля и методы обычно наследуются с разных уровней. И не всегда легко определить, какие поля и методы фактически относятся к данному классу.
Код для обработки сообщения иногда «размазан» по многим методам (иначе говоря, обработка сообщения требует не одного, а многих методов, которые могут быть описаны в разных классах).
Основной недостаток ООП - некоторое снижение быстродействия за счет более сложной организации программной системы.
ООП скорее не упрощает caму программу, а упрощает технологию ее создания.
Структура модуля объектно-ориентированной программы:
unit ИмяМодуля;
interface // раздел интерфейса
{Описания процедур и функций модуля,
которые могут использоваться другими модулями. }
const // раздел объявления констант
{Объявления глобальных констант модуля,
которые могут использоваться процедурами и функциями модуля.}
type // раздел объявления типов
{Объявления глобальных типов модуля,
которые могут использоваться процедурами и функциями модуля }
var // раздел объявления переменных
{Объявления глобальных переменных модуля,
которые могут использоваться процедурами и функциями модуля}
implementation // раздел реализации
{ Описания (текст) процедур и функций модуля}
end.
Объектные типы описываются в разделе Type программы с использованием зарезервированного (ключевого) слова class:
Type
<имя объектного типа> = class
<информационные поля объекта (переменные)>
<методы объекта (заголовки процедур и функций)>
end;
В языке Object Pascal классы - это специальные типы данных, используемые для описания объектов.
Описание класса имеет следующую структуру:
Type <Имя класса>=class (<Имя класса-родителя>)
Private
<частные описания>
Public
<общедоступные описания>
End;
Объекты как экземпляры класса объявляются в программе в разделе var как обычные переменные. Например:
Var
Button1:TButton;
BitBtn1:TBitBtn;
Для обращения к конкретному элементу объекта (полю, свойству или методу) указывается имя объекта и имя элемента, разделенные точкой, т.е. имя элемента является составным.
Пример обращения к полям объекта, программное описание свойств объекта:
Var
Button1:TButton;
Begin
…
Button1.Left:=30;
Button1.Top:=50;
... End;