Home » Статьи » Понятие инкапсуляции полиморфизма и наследования

Понятие инкапсуляции полиморфизма и наследования

Понятие инкапсуляции полиморфизма и наследования

Введение нового типа данных потребовало пересмотреть некоторые концепции языка Паскаль: ввести новые понятия, как, например, инкапсуляция, наследование, полиморфизм и виртуальность, новые зарезервированные слова (constructor, destructor, inherited, object, private, public, virtual), изменить уже существующие подпрограммы (подпрограммы New и Dispose). Инкапсуляция означает упоминавшееся выше объединение в одном объекте данных и действий над ними.

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

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

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

В основной программе (являющейся клиентом, как для класса Auto.

так и для AutoManager ), доступны оба класса ( Auto и AutoManager ) так как оба этих объявлены с модификатором public. но с данного класса также невозможен доступ к приватным свойствам обоих из вышеприведенных классов.

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

Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам и переменным).

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

Одиночное подчеркивание в начале имени атрибута говорит о том, что переменная или метод не предназначен для использования вне методов класса, однако атрибут доступен по этому имени.

Наследование подразумевает то, что дочерний содержит все атрибуты родительского класса, при этом некоторые из них могут быть переопределены или добавлены в дочернем. Например, мы можем создать свой класс, похожий на словарь :

Полиморфизм — разное поведение одного и того же метода в разных.

Например, мы можем сложить два числа, и можем сложить две строки.

При этом получим разный результат, так как числа и строки являются разными классами.

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

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

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

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

Методы объявляются в теле.

Описываться могут там же, но могут и за пределами (внутри класса в таком случае достаточно представить прототип метода, а за пределами класса определять метод поставив перед его именем — имя класса и оператор.

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

Приведем другой пример.

Принципы инкапсуляции как скрытия внутренней реализации заложены в любой функции PHP. Возможно, вам уже известна функция strpos() для работы со строками из стандартной библиотеки PHP. Эта функция ищет в строке заданную последовательность символов и возвращает ее позицию в виде числа.

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

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

которые она принимает, и формат возвращаемого значения .

Check Also

Как узнать готовность загранпаспорта в новосибирске