Подход к разработке программных средств, в основе которого лежит объектная декомпозиция программной системы, получил название объектно-ориентированного.
Объектная декомпозиция заключается в представлении программной системы в виде совокупности классов и объектов, которые наиболее естественным образом отражают предметную область работы системы. При этом иерархический характер системы отражается в иерархии классов, а ее функционирование рассматривается как взаимодействие объектов этих классов.
Объект обладает индивидуальностью и поведением.
Индивидуальность объекта, его свойства – это значения данных, которые определяют его состояние.
Поведение объекта – это совокупностью методов (процедур и функций), определяющих взаимодействие объекта с «внешней» средой и изменяющих его состояние. Методы описываются внутри класса и предназначены для операций над его данными. От обычных процедур и функций методы отличаются тем, что им при вызове передается указатель (с зарезервированным именем self) на тот объект, который их вызвал. Поэтому обрабатываться будут данные именно того объекта, который вызвал метод.
|
|
Таким образом, объект объединяет данные (свойства) и код (методы) в единое целое.
Каждый объект является представителем некоторого класса.
Класс – это совокупность однотипных объектов. Класс определяет общие свойства для всех его объектов.
Графическое изображение класса в нотации UML (Unified Modeling Language) следующее (рисунок 4.1):
Рисунок 4.1 – Графическое представление класса
Объектно-ориентированной разработке присущи следующие характерные свойства классов и объектов:
· Инкапсуляция – объединение данных и кода в одно целое. Скрытие информации – имеется возможность запретить любой доступ к данным объекта, кроме как через его методы. Внутренняя структура объекта скрыта от пользователя.
· Наследование – возможность создавать новые классы по принципу «от общего к частному». Наследование позволяет классам-потомкам при сохранении всех свойств классов-родителей добавлять свои собственные свойства, которые отражают их индивидуальность.
· Полиморфизм – способность объектов выбирать реализацию метода на основе типов данных, принимаемых в сообщении. Объекты разных классов реагируют по-своему на одно и тоже сообщение. Это позволяет разным объектам иерархии классов реализовать своим собственным образом некоторый метод обработки данных с одним и тем же именем для всех объектов.