Объектно-ориентированное программирование включает организацию данных в модулярное множество элементов информации из реального мира (называемых доменными). Такие элементы информации принято называть объектами. Эти данные группируются в соответствии с основными характеристиками реального мира таких элементов (размер, цвет и т. д.).
Объектный подход заключается в идее, которая хорошо себя зарекомендовала. Симула – первый язык программирования, внедривший концепцию классов в 1967 году! В 1976 году Smalltalk внедрил концепцию инкапсуляции, агрегации и наследования (основные концепции объектно-ориентированного программирования). С другой стороны, несколько объектно-ориентированных языков программирования были внедрены в глобальном масштабе (Eiffel, Objective C, Loops и др.).
Сложность такого модульного подхода заключается в создании абстрактного представления в форме объектов, которые существуют на самом деле (собака, машина, лампочка) или виртуально (социальное обеспечение, погода и т. д.).
Объект характеризуется несколькими концепциями: атрибуты, методы и идентичность.
Рассмотрим их подробнее:
Атрибуты – это данные, описывающие объект. Это переменные, содержащие данные, связанные с состоянием объекта.
Методы (часто называемые компонентными функциями) объекта характеризуют его поведение, значение всех действий (называемых операциями), которые объект способен выполнять сам. Благодаря этим операциям объект может реагировать на внешние запросы (или на другие объекты). Кроме того, операции тесно связаны с атрибутами, поскольку их действия могут зависеть от или даже изменять значения атрибутов.
У объекта есть идентичность, которая отличает его от других объектов, не зависимо от состояния. Эта идентичность обычно создается при помощи идентификатора, который происходит от типа предмета (например, продукт может определяться кодом, автомобиль – номером модели и т. д.).
Изображение: © Aha-Soft - Shutterstock.com