Теория и методика изучения основ объектно-ориентированного программирования в школьном курсе информатики

Курсовой проект - Педагогика

Другие курсовые по предмету Педагогика

?иртуальных методов (Virtual Method Table, VMT) в случае виртуальных методов и таблица динамических методов (Dynamic Method Table, DMT) в случае динамических.

Таблица виртуальных методов создается для каждого объектного типа. В ней содержатся адреса виртуальных методов этого объектного типа. Независимо от количества переменных данного объектного типа, для него создается только одна таблица VMT. При вызове виртуального метода каким-либо экземпляром местонахождение кода реализации данного метода определяется по таблице VMT для типа данного экземпляра. Взаимосвязь между VMT и экземпляром класса устанавливается при инициализации объекта. Так как адреса виртуальных методов при их вызове определяются через VMT объекта, то гарантированно будут использоваться методы, соответствующие типу объекта.

В таблице VMT содержатся адреса всех виртуальных методов класса - как унаследованных от предков, так и переопределенных в данном классе. Поэтому виртуальные методы вызываются достаточно быстро, но требуют большого объема памяти. В отличие от виртуальных методов, динамические методы вызываются медленнее, но зато занимают меньше памяти. Это объясняется тем, что в таблице динамических методов класса хранятся адреса только тех динамических методов, которые определены в данном классе. При вызове динамического метода адрес кода его реализации сначала ищется в таблице DMT, относящейся к типу данного экземпляра. Если адрес не найден, производится поиск в таблицах DMT всех классов-предков в порядке иерархии.

Для перекрытия виртуальных и динамических методов используется служебное слово override.

Рассмотрим пример использования виртуального метода для реализации концепции полиморфизма. С этой целью объявим методы класса окружность, которые переопределяются в классе кольцо, как виртуальные (приложение 7).

При таком определении эти классы являются полиморфными.

Виртуальный метод может быть объявлен с модификатором final. Такие методы не могут быть перекрыты в потомках класса.

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

Области видимости

В классах языка Object Pascal существует возможность разграничивать области видимости полей и методов. Область видимости задается специальным зарезервированным словом. Различаются пять вариантов областей видимости. Рассмотрим 3 основные. Опубликованную область и область автоматизации оставим без рассмотрения.

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

Личная область видимости задается директивой private. С ее помощью реализуется минимальная область видимости. Вне модуля, в котором определен класс, элементы категории private недоступны. Использование области видимости private позволяет полностью скрыть особенности внутренней реализации класса.

Защищенная область видимости задается директивой protected. Элементы категории protected помимо модуля, в котором определен класс, доступны в классах, являющихся потомками данного, даже если они определяются в других модулях.

Области видимости указываются не для каждого элемента класса - директива задает область видимости для всех следующих за ней элементов, пока не будет указана другая директива.

Обработка исключительных ситуаций

Исключительная ситуация - это событие, прерывающее нормальное выполнение программы. Иначе говоря, исключительная ситуация является ошибкой, возникающей во время выполнения программы. В языке Object Pascal существуют специальные средства для обработки исключительных ситуаций.

Исключительные ситуации, возникающие во время выполнения программы, описываются в языке Object Pascal с помощью специального объектного типа Exception. На базе этого типа определен ряд дочерних классов, соответствующих наиболее типичным исключительным ситуациям. Имена классов-потомков Exception начинаются с буквы Е.

В Object Pascal определены две конструкции для работы с исключительными ситуациями: try...except и try...finally.

Блок try...except

Блок try...except применяется для реакции на конкретную исключительную ситуацию (приложение 8).

Если при выполнении операторов, расположенных в разделе try, не возникает исключительная ситуация, то обращения к разделу except вообще не происходит. Если же в разделе try возникает исключительная ситуация, то управление сразу передается разделу except. Раздел except содержит набор операторов on...do, определяющих реакцию на исключительные ситуации. Между ключевыми словами on и do указывается имя класса исключительной ситуации. Оператор, расположенный после слова do, предназначен для ее обработки (после обработки исключительной ситуации управление не передается назад в раздел try).

Блок try...finally

Блок try...finally используется в тех случаях, когда необходимо выполнить некоторые действия даже в случае возникновения исключительной ситуации (например, освободить занятую память) (приложение 9).

В данной конструкции сначала выполняются операторы, расположенные в разделе try. Если при их выполнении не возникло исключительной ситуации, то выполняются операторы, расположенные в разделе finally. Если же при выполнении операторов в разделе try возникает исключи