Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5fan_ru_Obektno-orientirovannoe_programmirovan...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
351.74 Кб
Скачать

Объектно-ориентированное программирование на языке С++

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

1.1 Что такое объектно-ориентированное программирование?

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

В языках первого поколения (1954-1958 гг.) –FORTRAN1, ALGOL-58, реализуется хаотическая концепция программирования. Программам на этих языках была присуща неконтролируемая последовательность передач управления (оператор GO TO), отсутствие требования объявления данных, отсутствие подпрограмм.

К языкам второго поколения (1959-1961гг.) относят такие как FORTRAN2, ALGOL-60, COBOL, Lisp. В программах на этих языках были реализованы следующие методы программирования:

  • описание данных;

  • указатели для хранения адресов данных;

  • подпрограммы как средство разбиения задачи на подзадачи и снижения уровня сложности задачи.

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

Используя языки первого и второго поколений, программисты могли писать программы до нескольких тысяч строк длиной.

Подпрограммы

Рис 1.1. Архитектура языков второго поколения.

Стрелками на рисунке обозначено воздействие подпрограмм на различные данные.

К языкам третьего поколения (1962-1970гг.) относят такие как ALGOL-68, PL/1, Pascal, Simula. В программах на этих языках были реализованы следующие методы программирования:

-структурное программирование (текст программы должен представлять собой композицию трех основных элементов: последовательность, условие, цикл, программа строится из блоков, заключенных в фигурные скобки { });

-передача данных в подпрограмму посредством параметров;

-модульное программирование (модуль – функционально законченная часть программы, находящаяся в отдельном файле). Модули компилируются раздельно. По Лискову, “модульность – это разделение программы на раздельно компилируемые фрагменты, имеющие между собой средства сообщения”;

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

Архитектура языков третьего поколения показана на рис 1.2.

Подпрограммы

Модуль 1 Модуль 2 Модуль 3

Рис 1.2. Архитектура языков третьего поколения.

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

В 1970-1980 годах появились такие языки, как Smalltak, Object Pascal, C++, CLOS, ADA, Simula. Эти языки получили название объектно-ориентированных. Язык программирования С++ был разработан на основе языка С Бьярном Страуструпом и вышел за пределы его исследовательской группы в начале 80-х годов.

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

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

Архитектура программных систем на основе объектно-ориентированных языков показана на рис.1.3.

Объект 1

Данные

Функции

Объект 2

Объект n

Рис. 1.3. Архитектура программных систем на основе объектно-ориентированных языков.

На рис.1.3 стрелками показано взаимодействие объектов.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]