Элементы объектно-ориентированного программирования
Языки объектно-ориентированного программирования (ООП) используют очень высокий уровень абстрагирования понятий переменная и операция обработки.
Для внутреннего языка ЭВМ:
· переменная это – стандартный фрагмент оперативной памяти, заданный абсолютным адресом,
· операция обработки это – стандартный фрагмент процессора, заданный целочисленным кодом (код это – аналог адреса в процессоре).
Инструкции для ЭВМ на этом языковом уровне сводятся к строго упорядоченному (синтаксис!) перечню адресов.
Для процедурных языков программирования (Pascal и др.):
· переменная это – некая совокупность стандартных фрагментов оперативной памяти, которой присвоено символьное имя,
· операция обработки это – символьное имя некой последовательности кодов стандартных операций процессора.
Инструкции для ЭВМ на процедурном языке сводятся к строго упорядоченному (синтаксис!) перечню операторов.
Для языков ООП: переменные и операции по их обработке объединяются в единое целое – объект.Принципиальная возможность объединения таких разных понятий в единое целое объясняется достаточно просто: процесс ввода каждого нового информационного объекта обработки обязательно и немедленно сопровождается созданием целого комплекса операций по его обработке. При создании нового понятия (объекта - object, class) проводится описание всех мыслимых (и немыслимых…) действий, которые можно произвести над объектами этого типа. Всем характеристикам объекта и действиям над ним присваиваются символьные имена.
Особенность новообразований в том, что пользователю (программисту) вовсе не обязательно знать какая именно битовая структура скрывается под конкретным именем, достаточно знать прикладной смысл (прагматику!) данной характеристики.
Например (см. п.п. 12.2.1.), математический объект–вектор однозначно описывается упорядоченной последовательностью чисел-координат (компонентов) вектора. Вместе с тем, вектор обладает рядом неотъемлемых свойств, которые именно вычисляются на основе его координат:
· длина (модуль),
· направление, которое может задаваться как единичным вектором, так и направляющими косинусами,
а если вектор, как направленный отрезок-стрелка, планируется изображать на экране и редактировать (с помощью манипулятора Mouse), то количество вспомогательных характеристик возрастает лавинообразно:
· цвет, толщина и структура линии,
· координаты точки приложения вектора и обозначение вектора,
· текстовое пояснение смысла и предназначения этого вектора,
· область выделения рисунка, точки управления изображением, масштабируемость, возможность копирования (переноса в другие программы) и т.д. и т.п.
Специфика ООП заключается в том, что большая часть числовых характеристик оформляется не в виде привычных переменных типа: real или integer, а в виде подпрограмм-операций, которые вызываются и выполняются при каждом затребовании данной характеристики. Причем эти подпрограммы не имеют формальных параметров, т.е. внешне выглядят - как привычные переменные требуемого типа.
В таких условиях задача определения длины вектора сводится к «банальному упоминанию» только самого названия требуемой характеристики – длина. Специфика ООП в том, что программисту можно не знать: как именно будет доставлена ему требуемая характеристика объекта: то ли скопирована из памяти, то ли вычислена какой-то процедурой. Главное - он должен:
· знать о ее существовании,
· что она из себя представляет (число, символ, операция, картинка),
· как она называется.
Опр. Способность объекта объединять в себе переменные и операции по их обработке называется инкапсуляцией.
Поскольку разработка абсолютно нового объекта (object) является весьма трудоемким и хлопотливым занятием, особенно если объект использует визуализацию (вывод изображений на экран) или информационный обмен посредством сетей, для этого класса информационных объектов предусмотрена возможность создания нового – путем модернизации (доработки, исправления, дополнения) некоего существующего объекта-родителя.
Опр. Наследование – автоматический перенос всех свойств (характеристик) объекта-прототипа на создаваемый дочерний объект.
Пример описания Tnew-структуры нового класса объектов, которые наследуют свойства ранее созданного класса объектов с именем Tf:
Type Tnew= class (Tf)
<<Здесь описываются новые характеристики создаваемого объекта>>
End;
В отличие от процедурных языков программирования, ООП включает в описание объектов не только переменные и подпрограммы, но и стандартизированные описания принципиально новых структур (типов), как самих включаемых переменных, так и самих включаемых подпрограмм. В упрощенной форме: в тело объекта (object) включаются также операторы типа Type, которые в процедурных языках предназначены только для транслятора. Эти данные дают возможность «дотранслировать» готовый (ранее созданный) программный модуль непосредственно в момент его выполнения, что позволяет обрабатывать старыми (ранее созданными) программами новые (сегодняшнего изготовления) информационные объекты. Это свойство объектов называется полиморфизмом или поздним связыванием.
Информационный объект типа object (class) наделен высоким свойством автономности (почти как отдельная программа), т.е. он вполне самодостаточен. В частности, объекты могут сами реагировать на поступающие извне директивы (команды) и даже сами генерировать такие директивы для других объектов.
Опр. Событие - реальное или абстрактное происшествие в работающем автомате (ЭВМ), которое оформлено в виде стандартного информационного объекта сообщения -message.
Примеры событий: нажата какая-то кнопка на клавиатуре или Mouse, обнаружена попытка записи информации (чтения) в защищенную область оперативной памяти, получено электронное письмо, произошло деление на ноль, на диске не обнаружен затребованный файл и т.д. и т.п.
Основным обработчиком такого рода сообщений является программа-операционная система (Windows), однако все сообщения могут также перехватываться и обрабатываться даже отдельными объектами. В частности, общение различных объектов между собой также реализовано путем обмена специальными сообщениями.
Основная рекомендуемая литература.
1. Информатика: Базовый курс\С.В.Симонович и др.-СПб.: Питер, 2001.-640с.
2. Программирование в интегрированной среде Турбо-Паскаль.\Д.В.Офицеров, В.А.Старых.: Минск, Вышэйшая школа, 1999.
3. Паскаль для персональных компьютеров.\Ю.С.Бородич , А.Н.Вальвачев.,А.И.Кузьмич.-Минск, Вышэйшая школа, 1992.
4. IBM РС для пользователей.\В.Э.Фигурнов, М.: «Инфра», 1997.,-640с.
Дополнительная литература.
1. Информатика: Учебник\Под ред.проф.Н.В.Макаровой-М.:Финансы и статистика, 1997.-768с.
2. Основы информатики. Учеб.пособие.\В.З.Аладьев, Ю.Я.Хунт, М.Л.Шишаков. -М.:Информ.изд.дом «Филинь»,1998.-496с.
3. Энциклопедия Windous 98.\Б.Богумирский. -СПб.:Питер,1999.-896с.
4. Microsoft Office 97.\Пасько В.,-Киев, Изд.группа BHV, 1998г.-768с.
Дата добавления: 2021-12-14; просмотров: 310;