Объект с точки зрения ООП. Состояние. Поведение
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

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

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

 

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

Взаимодействие объектов может быть описано в терминах операций.

 

Операция - определенное воздействие одного объекта на другой с целью вызвать соответствующее действия или реакцию, причем, некоторые операции могут изменить внутреннее состояние объекта (или в терминах концепции сообщений, реакция на некоторые сообщения ведет к изменению состояния объекта)

 

Поведение объекта реализуется через методы его класса (классов).

Можно выделить следующие типы методов:

· Конструкторы (методы создания объекта и/или его инициализации)

· Деструкторы (методы, освобождающие состояние и ресурсы объекта и/или разрушающие сам объект)

· Селекторы (методы, считывающие, но не меняющие состояние объекта)

· Модификаторы (методы, способные изменить состояние объекта)

· Итераторы (методы, позволяющие организовать доступ к частям объекта-контейнера в строго определенной последовательности)

 

Объект с точки зрения ООП. Идентичность и жизненный цикл объектов.

Идентичность - это такое свойство объекта, которое отличает его от всех других объектов.

 

· Разные языки могут предоставлять различные средства для поддержки идентичности объектов. Например, в C++ можно принимать решение об идентичности как на основе конкретного адреса размещения объекта, так и на основе результата определяемого пользователем оператора operator==.

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

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

* - Например, в базе данных несколько объектов СТРОКА имеют одинаковые данные. Но они не равны. Там сравнение производится по идентификатору

 

Жизненный цикл объектов:

Каждый объект имеет четко определенный жизненный цикл.

Помимо обычного состояния — использование объекта — этот жизненный цикл включает два важных этапа.

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

· Уничтожение. При уничтожении объекта часто требуется выполнить какие-либо операции по зачистке, вроде освобождения памяти. За их выполнение отвечает функция-деструктор, которую часто называют просто деструктором.

 

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

 

В разных объектно-ориентированных языках существуют разные механизмы управляющие рождением и уничтожением объектов. Как уже было сказано, в C++ для управления процессом создания и уничтожения объектов используются конструкторы, деструкторы, а также операторы operator new и operator delete .

 

Дата: 2019-02-19, просмотров: 713.