Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев_С++_CLI_C#_Java_J#.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.Основные понятия объектно-ориентированного программирования

2.1 Объекты

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

Каждый объект модели, да и сама модель, представляет некоторую сущность, характеризуемую своим состоянием и поведением. При функционировании модели состояние составляющих её объектов, да и самой модели, меняется в зависимости от поведения объектов.

По их состоянию и поведению объекты разделяются на типы. Однотипные объекты имеют схожее состояние и поведение. В языках программирования С++, Java и C# однотипные объекты описываются схоже со структурой языка С, элементами которой теперь являются не только объявления данных, представляющих состояние объекта, но и объявления (или описания) функций (методов), определяющих его поведение. Этот вновь введённый тип, описывающий объекты и отсутствующий в языке С, но появившийся в языках С++, Java и C# называется классом (class). Из класса создаются переменные типа class, называемые объектами.

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

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

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

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

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

Допустим, необходимо написать объектно-ориентированную программу моделирования полётов самолётов между аэропортами. Здесь в виде объектов можно представить такие сущности как самолёты и аэропорты. Для создания объектов самолётов можно разработать, например, класс с именем Plane, в котором объявить данные (состояние): координаты траектории полёта, вес, скорость и др. Функции этого класса должны установить исходные значения этих данных и осуществить полёт, изменяя координаты в соответствии с маршрутом во времени.

Класс, связанный с аэропортом, назовём Airport. Данные класса Airport содержат информацию об аэропорте, например: количество взлётно-посадочных полос, координаты местоположения аэропорта и др. Функции этого класса управляют аэропортом, разрешая или запрещая, допустим, взлёт и посадку самолётов, и др.

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

В зависимости от целей разработки программы можно описать классы по-разному, ограничив различно представленные классами сущности. Если, например, ставится задача исследовать расход топлива при полётах самолётов, то класс самолёта должен включать данные, влияющие на расход топлива. Здесь придётся учесть не только вес самолёта, но и вес пассажиров с их багажом.

Объектом всегда представляется ограниченная сущность так, как она описана классом этого объекта.

Если Вы желаете ограничить или расширить функциональность объектов некоторого класса, то измените их класс - теперь из него будут созданы желанные объекты.