[ООП] Лекция 1
.pdfЯзык программирования
лекция 1
Литература
•Павловская Т.А. C/C++ Программирование на языке высокого уровня. – СПб.:Питер, 2003.
•Подбельский В.В. Язык С++: Учебное пособие.– М.: Финансы и статистика, 2000.
•Страуструп Б. Язык программирования С++.– СПб.:Бином, 2002.
•Лафоре Р. Объектно-ориентированное программирование в С++ – СПб.:Питер, 2003.
•Юров В.И. Assembler. Учебник для ВУЗов.
Подходы к программированию
•Процедурно-ориентированный: оперирует абстракцией алгоритма(ex. Си)
•Логико-ориентированный: цели, выражены на языке логических предикатов(ex. Prolog)
•Объектно-ориентированный: абстрагирует классы и объекты(ex. C++)
"Объектно-ориентированное программирование – это методология программирования, основанная на организации программы, в виде совокупности объектов, каждый из которых является представителем определенного класса, а классы образуют иерархию наследования.” Грейди Буч
Кризис программного обеспечения
Задачи, которые мы хотим решить,
опережают наши возможности |
-> |
Стиль программирования, который фиксирует поведение реального мира таким способом, при котором детали его реализации скрыты
=
ООП
Свойства сложных систем
•Являются иерархическими и состоят из взаимозависимых подсистем, которые в свою очередь также могут быть разделены на подсистемы и т.д. – до самого низкого уровня.
•Выбор элементарных компонентов произволен и зависит от исследователя.
•Каждая часть системы имеет свою функцию и может рассматриваться независимо от других.
•Системы состоят из немногих типов подсистем, по-разному скомбинированных и организованных.
•Система сложнее, чем совокупность ее частей.
Ex: ПК, растение, человек, предприятие, государство
ООП
Объектно-ориентированное программирование – «парадигма» программирования (набор теорий, стандартов и методов, которые совместно представляют собой способ организации знаний) - Стиль программирования, который фиксирует поведение реального мира таким способом, при котором детали его реализации скрыты .
Понятие объекта
Модель объекта реального мира, сущность, обладающая определенным поведением.
Объект характеризуется своим состоянием (поля - элементы данныхатрибуты).
Поведение – это то, как объект взаимодействует с окружением (другими объектами) - реакция на манипуляции с ним или действия, инициированные самим объектом.
Действия в отношении к объектам называют передачей сообщений между ними. В C++ действия представлены функциями-элементами объекта или методами. Эти функции являются структурными элементами определения класса, к которому принадлежит объект.
Программа- совокупность взаимодействующих объектов.
Понятие класса
Класс - множество однотипных объектов с одинаковым поведением и набором атрибутов.
У различных объектов одного класса различаются значения атрибутов, однако методы совпадают.
Объекты называются экземплярами класса.
Основные свойства ООП
•Инкапсуляция
•Наследование
•Полиморфизм
Инкапсуляция
Объединение данных с функциями их обработки в сочетании со скрытием ненужной для использования этих данных информации ( + повышение уровня абстракции) .
Чтобы абстрагировать объект, он должен обладать сравнительно небольшим набором существенных свойств, характеризующих его отношения с другими объектами.
Изменение состояния объекта извне достигается только с помощью передачи сообщения (вызова метода).