Урок 1. Повторение ООП
повесточка на день
Домашка ёу
1.74M
Категория: ПрограммированиеПрограммирование

Урок 1 Введение в ООП

1. Урок 1. Повторение ООП

Иван Владиславович Кашко
1

2. повесточка на день

1. История создания
2. Сравнительный анализ
3. Принципы ООП
4. Классы
5. Спецификаторы доступа
6. Контрольные вопросы
7. Трещим за домашнюю работу
Иван Владиславович Кашко
2

3.

История и этапы развития C++
Язык C++ был разработан Бьёрном Страуструпом в начале 1980х годов как расширение языка C. Изначально он назывался "C
with Classes". Основной целью было добавление возможностей
ООП без потери эффективности и совместимости с C.
Ключевыми вехами стали стандартизации: C++98, C++11, C++14,
C++17 и C++20. Каждый новый стандарт привносил
значительные улучшения, такие как умные указатели, лямбдавыражения и модули.
Иван Владиславович Кашко
3

4.

Сравнительный анализ:
C, PASCAL, BASICC++ vs C: C++ является надмножеством C, добавляя классы,
исключения и шаблоны. C остается более низкоуровневым и процедурным.
C++ vs PASCAL: Pascal был строго типизированным и учебным языком, тогда
как C++ — это язык общего назначения для промышленной разработки.
C++ vs BASIC: BASIC ориентирован на простоту и обучение, часто
интерпретируемый. C++ — это компилируемый язык, требующий глубокого
понимания, но дающий полный контроль над системой.
Иван Владиславович Кашко
4

5.

Задание 1:
Цель: Закрепить понимание процедурного подхода (как в C) перед
переходом к ООП.
1.
2.
Создайте программу, которая:
Объявляет структуру Book (используя struct) для хранения
информации о книге: номер ID, название, автор, год издания.
3.
В функции main() создайте одну переменную типа Book и вручную
присвойте ей значения.
4.
Напишите функцию printBookInfo(), которая принимает структуру Book
и выводит всю информацию о ней в консоль.
5.
Вызовите эту функцию для вывода данных о созданной книге.»
Иван Владиславович Кашко
5

6.

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

7.

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

8.

Наследование
Наследование — это процесс, при котором один класс (производный)
заимствует свойства и поведение другого класса (базового). Это
способствует повторному использованию кода и созданию иерархий
классов. В реальном мире примером является транспорт: класс
Грузовик наследует общие свойства от ТранспортноеСредство (колеса,
двигатель), но добавляет свои (грузоподъемность).
Иван Владиславович Кашко
8

9.

Задание 2: Преобразуйте структуру Book в класс Book.
Все переменные-члены (ID, название, автор, год) сделайте private.
Реализуйте public-методы для безопасного доступа к данным:
Конструктор для инициализации объекта при создании.
Геттеры (например, getTitle(), getAuthor()) для получения значений.
Сеттеры (например, setTitle(), setYear()) для установки значений с базовой
проверкой (например, год не может быть отрицательным).
Метод printInfo() теперь должен быть публичным методом класса и
использовать геттеры для доступа к данным. Это демонстрирует
инкапсуляцию — прямой доступ к полям извне невозможен.»
Иван Владиславович Кашко
9

10.

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

11.

Понятие класса и синтаксис
Класс — это основа ООП в C++, модель для создания
объектов. Синтаксис объявления начинается с ключевого
слова class, за которым следует имя класса и тело в фигурных
скобках. В теле класса объявляются его члены: переменные и
функции. Завершается объявление точкой с запятой.
Иван Владиславович Кашко
11

12.

Спецификаторы доступа: public, private
Спецификаторы доступа определяют видимость членов
класса.
public: Члены доступны из любой части программы.
private: Члены доступны только из методов самого класса
(инкапсуляция по умолчанию).
Иван Владиславович Кашко
12

13.

Спецификатор доступа protected и переменныечлены
protected: Члены доступны из методов самого класса и из
методов производных (наследованных) классов. Переменныечлены класса (поля) — это переменные, объявленные внутри
класса. Они хранят состояние объекта.
Иван Владиславович Кашко
13

14.

Контрольные вопросы
Назовите три основных принципа объектно-ориентированного
программирования.
В чем основное различие между спецификаторами доступа private и
protected?
Что такое объект и как он связан с понятием класса?
Как полиморфизм проявляется в реальном мире? Приведите пример.
Объясните, что такое инкапсуляция и какую проблему она решает.
Иван Владиславович Кашко
14

15.

Задание 3
1. Реализуйте все созданные ранее классы: Book (базовый) и AudioBook
(производный).
2. Добавьте в базовый класс Book спецификатор доступа protected для одного из
полей (например, id). Объясните, почему вы выбрали именно это поле и в чем
разница между private и protected на практике вашего проекта.
3. В функции main() создайте полиморфную коллекцию объектов библиотеки.
4. Напишите простое меню, позволяющее пользователю:
5. Просмотреть весь каталог (используя полиморфный вызов printInfo()).
6. Добавить новую книгу или аудиокнигу.
7. Вывести список только аудиокниг (для этого потребуется использовать
динамическое приведение типа dynamic_cast или добавить виртуальный метод
bool isAudioBook()).»
Иван Владиславович Кашко
15

16.

Заключение
C++ — это мощный и многогранный язык, который
продолжает развиваться. Понимание его истории,
основных принципов ООП и синтаксиса работы с классами
является критически важным для каждого разработчика.
Эти концепции лежат в основе большинства современных
языков и технологий. Дальнейшее изучение C++ откроет
перед
вами
возможности
для
создания
высокопроизводительных и сложных систем.
Иван Владиславович Кашко
16

17. Домашка ёу

Иван Владиславович Кашко
17
English     Русский Правила