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

Страница 1

Объектно-ориентированное программирование базируется на трех основных принципах: инкапсуляции, наследовании и полиморфизме.

Изучение принципов является обязательным элементом курса.

1. Инкапсуляция

Инкапсуляция – это комбинирование данных с процедурами и функциями, которые манипулируют этими данными. Данные и методы используются для определения содержания и возможностей объекта. Например, окружность описывается координатами центра и радиусом (данные). Кроме того, над окружностью можно проделывать различные действия (методы): вычислять ее длину и площадь ограниченного ею круга, проверять находится ли некоторая точка внутри данной окружности и т.п.

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

Доступ к полям класса производится точно так же, как и доступ к полям записи, с помощью одного из двух способов:

указания имени соответствующего поля после имени экземпляра класса через точку;

использования оператора with.

Аналогичным образом производится и вызов методов.

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

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

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

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

В объявлении класса TRing указываются функции расчета площади кольца и определения попадания некоторой точки с заданными координатами внутрь кольца. Хотя имена этих методов совпадают с именами соответствующих методов для класса TCircle, их реализация должна быть иной, так как они применяются к разным геометрическим фигурам. Если имена методов, объявляемых в дочернем классе, совпадают с именами полей или методов родительского класса, то говорят, что они перекрываются. В зависимости от типа методов результаты перекрытия методов будут различными. Тип метода определяется служебным словом после объявления метода.

3. Полиморфизм

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

На практике это означает способность объектов выбирать метод, исходя из типа данных. Например, ранее мы рассмотрели пример класса TCircle и дочернего от него класса TRing. Согласно правилу соответствия типов, принятому в Object Pascal, переменные дочернего класса всегда совместимы с переменными класса-предка, причем совместимость односторонняя: переменной класса-предка можно присвоить значение переменной дочернего класса, но не наоборот. Таким образом, если имеется какая-либо процедура, для которой формальным параметром является переменная класса TCircle, то в данную процедуру можно передать в качестве фактического параметра переменную типа TRing. Причем классы TCircle и TRing имеют методы с одинаковым названием, но по-разному выполняемые. Концепция полиморфизма подразумевает, что внутри процедуры будут вызываться методы, соответствующие не типу формальной переменной, а типу реально переданной переменной.

Страницы: 1 2


Другое о педагогике:

Разработка систем экспериментальных заданий по теме «Законы сохранения в механике». Методические рекомендации по применению на уроках физики
На тему законы сохранения в механике отводится 16 часов. Закон сохранения импульса. (5 часов) Для этой темы нами было предложено следующее экспериментальное задание: Цель: изучение закона сохранения импульса. Каждый из Вас наверное сталкивался с такой ситуацией: Вы бежите с определенной скоростью п ...

Методические рекомендации для повышения уровня ответственности детей группы риска
Работа по повышению уровня ответственности должна проходить по двум направлениям: 1) формирование представлений детей об ответственности; 2) упражнение, тренировка в проявлении ответственности. Занятия с детьми рекомендуется проводить через день в течение 3 месяцев на базе реабилитационного центра. ...

Выявление уровня нравственной воспитанности младших школьников
Цель исследования заключается в определении уровня нравственной воспитанности до проведения эксперимента воспитания нравственных качеств у детей в процессе становления детского коллектива и в процессе коллективной деятельности. Исследование проводилось двумя экспериментами. После проведения экспери ...

Меню

Copyright © 2024 - All Rights Reserved - www.normaleducation.ru