Похожие презентации:
Урок 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.
Задание 31. Реализуйте все созданные ранее классы: 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
Программирование