Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр.на_ЯВУ_уч.пос.DOC
Скачиваний:
24
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Глава 10. Введение в объектно-ориентированное программирование §10.1. История развития программирования

В общих чертах ее можно представить диаграммой:

Машинное программирование  процедурное программирование  ООП

Первый объектно-ориентированный язык программирования Симула был создан в 1967 г. и являлся расширением Алгола. В 1970 г. был разработан язык Смолток, но они не стали популярными из-за низкого быстродействия.

В современные прикладные языки объектно-ориентиро­ванное программирование пришло не сразу, так Турбо Паскаль и Си изначально не были объектно-ориентированными. В 1983 г. появилась объектно-ориентированная версия Си++, а в 1989 г. были включены средства работы с объектами в версию Турбо Паскаль 5.5.

Понятие объекта

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

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

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

Рис. 10.1. Пример фрагмента иерархии геометрических фигур

Наивысший уровень – самый общий, каждый последующий – более специфический, дополняемый деталями. На последнем уровне определяются цвет, стиль заполнения и т.п.

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

Иерархия объекта – это структурированный в виде дерева набор связей родитель-потомок набора объектов.

Основное правило ООП: если характеристика определена для какого-либо объекта, то все объекты, расположенные ниже данного определения, содержат эту характеристику.

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

Type

Point = object

X,Y: integer;

Visible: boolean

end;

Для формирования структуры типа объект используется служебное слово object. В дальнейшем тип Point можно использовать в программе обычным образом: определять переменные этого типа, как статически, в разделе Var, так и динамически, создавая экземпляр переменной этого типа с помощью процедуры New; работать с полями и прочее.

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