воскресенье, 7 июля 2013 г.

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

Объектно-ориентированное, или объектное, программирование (в дальнейшем ООП) – одна из парадигм программирования, которая опирается на модель классов и их представлениях в виде объектов. По сути, объекты это реализация классов в программе, класс как будто бы тип объекта.

Если вы посмотрите вокруг себя, тогда вы можете увидеть, что все что вокруг вас можно представить в виде объектов.

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

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

Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик. Абстракция – это представления программы в виде объектов реального мира.

Инкапсуляция — это способность объекта скрывать некоторые поля от пользователя с целю не навредить внутренней структуре объекта. Инструментом инкапсуляции в С++, есть модификаторы доступа, которые регламентируют доступ к полям и методам функции из внешней среди. Некоторые поля и методы используются внутри объекта и не предвидят использование из самой программы. Для безопасности эти поля и методы необходимо скрыть от внешней среды, и уберечь данные от переопределения.

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

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта. Проще говоря, в разных классах, одинаковые методы могут выполнять различные действия. В двоих классах «Собака» и «Кот», есть одинаковые методы «голос», но в зависимости от класса этот метод исполняет разные действия (голос в собак и котов различается).

В дальнейшим ми рассмотрим реализацию ООП в языке программирования С++.

Комментариев нет:

Отправить комментарий