Объекты, которые обычно являются экземплярами классов, используются для взаимодействия друг с другом при разработке компьютерных программ.
Важными чертами объектно-ориентированного программирования являются:
– Подход снизу вверх в разработке программы.
– Программы организованы вокруг объектов, сгруппированных по классам.
– Акцентирование на данных с методами при работе с данными объекта.
– Взаимодействие объектов через функции.
– Повторное использование дизайна путем создания новых классов с помощью добавления функций к существующим классам.
Объектная модель, используемая объектно-ориентированной парадигмой, визуализирует элементы в программном приложении с точки зрения объектов.
И понятия объектов и классов неразрывно связаны между собой и составляют основу объектно-ориентированной парадигмы.
Объект является реальным элементом в объектно-ориентированной среде, который может иметь физическое или концептуальное существование.
Физическое существование – это например, клиент, автомобиль и т. д .
Или неосязаемое концептуальное существование – например, проект, процесс и т. д.
Каждый объект имеет идентичность, которая отличает ее от других объектов в системе. И состояние, которое определяет характерные свойства объекта, а также значения свойств, которыми обладает объект. А также поведение, которое представляет внешне видимые действия, выполняемые объектом с точки зрения изменений его состояния.
Класс представляет собой совокупность объектов, имеющих одни и те же свойства, и которые демонстрируют общее поведение.
Класс дает схему или описание объектов, которые могут быть созданы из него.
Создание объекта как члена класса называется экземпляром.
Таким образом, объект является экземпляром класса.
Класса состоит из набора атрибутов для объектов, которые должны быть созданы из класса.
Разные объекты класса имеют разные значения атрибутов. И атрибуты часто называются данными экземпляра класса.
И класс состоит из набора операций, которые отображают поведение объектов класса.
Операции также называются функциями или методами.
Инкапсуляция – это процесс связывания как атрибутов, так и методов вместе внутри класса.
Благодаря инкапсуляции внутренние детали класса могут быть скрыты извне.
И инкапсуляция позволяет доступ к элементам класса извне только через интерфейс, предоставляемый классом.
Как правило, класс разработан таким образом, что его данные (атрибуты) могут быть доступны только через методы класса и изолированы от прямого внешнего доступа.
Этот процесс изоляции данных объекта называется скрытием данных.
Любое приложение требует целого ряда объектов, взаимодействующих между собой. И объекты в системе могут взаимодействовать друг с другом, используя передачу сообщений. И сообщение, проходящее между двумя объектами, как правило, однонаправлено.
Передача сообщений позволяет осуществлять все взаимодействия между объектами.
И передача сообщения по существу включает вызов метода класса.
Наследование – это механизм, позволяющий создавать новые классы из существующих классов путем расширения и уточнения их возможностей.
Существующие классы называются базовыми классами, родительскими классами или суперклассами, а новые классы называются производными классами, дочерними классами или подклассами.
Подкласс может наследовать атрибуты и методы суперкласса при условии, что суперкласс позволяет это.
Кроме того, подкласс может добавлять свои собственные атрибуты и методы и может модифицировать любой из методов суперкласса.
Наследование определяет отношение «is-a».
Полиморфизм в объектно-ориентированной парадигме подразумевает использование операций по-разному, в зависимости от того, в каком экземпляре они работают.
Полиморфизм позволяет объектам с разными внутренними структурами иметь общий внешний интерфейс.
И полиморфизм особенно эффективен при реализации наследования.
Обобщение и специализация представляют собой иерархию отношений между классами, где подклассы наследуются от суперклассов.
В процессе обобщения общие характеристики классов объединяются для формирования класса на более высоком уровне иерархии, т. е. подклассы объединяются для формирования обобщенного суперкласса.
Специализация – это обратный процесс обобщения.
Здесь отличительные особенности групп объектов используются для формирования специализированных классов из существующих классов.
Можно сказать, что подклассы являются специализированными версиями суперкласса.
Ссылка представляет собой соединение, через которое объект взаимодействует с другими объектами.
Через ссылку один объект может вызывать методы или перемещаться по другому объекту.
Ссылка изображает взаимосвязь между двумя или более объектами.
Ассоциация – это группа ссылок, имеющих общую структуру и общее поведение.
Ассоциация изображает взаимосвязь между объектами одного или нескольких классов.
И ссылка может быть определена как экземпляр ассоциации.
Степень ассоциации обозначает количество классов, участвующих в соединении. И степень ассоциации может быть унарной, бинарной или тройной.
Унарное отношение связывает объекты одного и того же класса.