Сущность объектно-ориентированного программирования

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

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

Следующим этапом развития программирования является объектно-ориентированное программирование (ООП), основные принципы которого были разработаны ещё в языке Simula-67.

Основой ООП является введение понятия объекта и взаимосвязей между ними.

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

Детали реализации объекта скрыты от пользователя за интерфейсом, которым являются заголовки его методов.

Конкретные данные этого типа называются экземплярами объектов.

С помощью ООП реализуется т.н. «событийно-управляемая модель», при которой активны данные, управляющие вызовом того или иного метода их обработки (т.е. фрагмента программного кода).

Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм.

Инкапсуляция – это объединение данных и алгоритмов (подпрограмм) их обработки, при котором и данные, и подпрограммы в значительной степени теряют своё самостоятельное значение. В результате при написании программ исключаются ошибки, связанные с тем, что для обработки данных примененяются не предназначенные для этого подпрограммы. Инкапсуляция повышает уровень абстракции программы, которые становятся легко модифицируемыми.

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

Механизм наследования позволяет строить библиотеку объектов по принципу «от простого к сложному». Такая технология разработки программ реализует технологию восходящего программирования.

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

Методические указания к выполнению лабораторных работ

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

Перечень лабораторных работ:

Структурное программирование

Освоение интегрированной среды программирования

- Лабораторная работа №1. Работа с файлами в интегрированной среде программирования.

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

Линейные программы

- Лабораторная работа №3. Поразрядные логические операции.

Разветвляющиеся программы

- Лабораторная работа №4. Поиск экстремума.

- Лабораторная работа №5. Определение принадлежности точки выделенным областям на плоскости.

- Лабораторная работа №6. Многовариантные вычисления по ключу.

Циклы

- Лабораторная работа №7. Циклические вычисления на заданное число повторений.

- Лабораторная работа №8. Циклические вычисления с заданной точностью.

Наши рекомендации