Чтение онлайн

на главную - закладки

Жанры

Программирование на Java

Вязовик Н.А.

Шрифт:

В конкретной задаче могут появиться и другие свойства, например, физическое состояние, здоровье (больной человек обычно не прыгает).

Состояние (state) - совокупный результат поведения объекта: одно из стабильных условий, в которых объект может существовать, охарактеризованных количественно; в любой момент времени состояние объекта включает в себя перечень (обычно статический) свойств объекта и текущие значения (обычно динамические) этих свойств [2].

Поведение

Для каждого объекта существует определенный

набор действий, которые с ним можно произвести. Например, возможные действия с некоторым файлом операционной системы ПК:

* создать;

* открыть;

* читать из файла;

* писать в файл;

* закрыть;

* удалить.

Результат выполнения действий зависит от состояния объекта на момент совершения действия, т.е. нельзя, например, удалить файл, если он открыт кем-либо (заблокирован). В то же время действия могут менять внутреннее состояние объекта - при открытии или закрытии файла свойство "открыт" принимает значения "да" или "нет", соответственно.

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

В терминологии объектно-ориентированного подхода понятия "действие", "сообщение" и "метод" являются синонимами. Т.е. выражения "выполнить действие над объектом ", "вызвать метод объекта " и "послать сообщение объекту для выполнения какого-либо действия" эквивалентны. Последняя фраза появилась из следующей модели. Программу, построенную по технологии ООП, можно представить себе как виртуальное пространство, заполненное объектами, которые условно "живут" некоторой жизнью. Их активность проявляется в том, что они вызывают друг у друга методы, или посылают друг другу сообщения. Внешний интерфейс объекта, или набор его методов,- это описание того, какие сообщения он может принимать.

Поведение (behavior) - действия и реакции объекта, выраженные в терминах передачи сообщений и изменения состояния; видимая извне и воспроизводимая активность объекта [2].

Уникальность

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

В машинном представлении под параметром уникальности объекта чаще всего понимается адрес размещения объекта в памяти.

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

Наиболее распространенной ошибкой является понимание уникальности как имени ссылки на объект. Это неверно, т.к.

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

Итак, уникальность (identity) - свойство объекта; то, что отличает его от других объектов (автор не согласен с переводом русского издания[2], поэтому здесь приводится авторский перевод).

Классы

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

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

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

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

В соответствии с UML (Unified Modelling Language - унифицированный язык моделирования), класс имеет следующее графическое представление.

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

Каждый класс также может иметь специальные методы, которые автоматически вызываются при создании и уничтожении объектов этого класса:

* конструктор (constructor) - выполняется при создании объектов;

* деструктор (destructor) - выполняется при уничтожении объектов.

Поделиться:
Популярные книги

Шиноби

Василий
Фантастика:
попаданцы
5.00
рейтинг книги
Шиноби

Дневники 1932-1947 гг

Бронтман Лазарь Константинович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Дневники 1932-1947 гг

Трапеция

Брэдли Мэрион Зиммер
Проза:
современная проза
5.00
рейтинг книги
Трапеция

Конфликт чести. Агент перемен. Лови день

Ли Шарон
Золотая библиотека фантастики
Фантастика:
боевая фантастика
6.25
рейтинг книги
Конфликт чести. Агент перемен. Лови день

Цена предательства

Тамоников Александр
Спецназ
Детективы:
боевики
7.86
рейтинг книги
Цена предательства

Отречение

Балашов Дмитрий Михайлович
6. Государи московские
Проза:
историческая проза
6.50
рейтинг книги
Отречение

Нюрнбергский набат. Репортаж из прошлого, обращение к будущему

Звягинцев Александр Григорьевич
Научно-образовательная:
история
5.00
рейтинг книги
Нюрнбергский набат. Репортаж из прошлого, обращение к будущему

Русский рок. Малая энциклопедия

Коллектив авторов
Справочная литература:
энциклопедии
7.00
рейтинг книги
Русский рок. Малая энциклопедия

Сёгун

Клавелл Джеймс
Азиатская сага
Приключения:
исторические приключения
прочие приключения
9.41
рейтинг книги
Сёгун

Избранное

Лалич Михаило
Мастера современной прозы
Проза:
военная проза
5.00
рейтинг книги
Избранное

Разные дни войны. Дневник писателя, т.2. 1942-1945 годы

Симонов Константин Михайлович
Документальная литература:
публицистика
6.25
рейтинг книги
Разные дни войны. Дневник писателя, т.2. 1942-1945 годы

Судьба

Буджолд Лоис Макмастер
Мастера фантазии
Фантастика:
научная фантастика
космическая фантастика
5.00
рейтинг книги
Судьба

Московское царство

Вернадский Георгий Владимирович
5. История России
Научно-образовательная:
история
7.00
рейтинг книги
Московское царство

Неучтенный элемент. Том 2

NikL
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 2