$30 off During Our Annual Pro Sale. View Details »

Программирование – 1 курс весна 2022 – 5 занятие

Программирование – 1 курс весна 2022 – 5 занятие

ТиМПИ

March 22, 2022
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

  1. 22 марта 2022 fvb@dscs.pro Федор Витальевич Бушмелев Введение в ООП

    (часть 2)
  2. 2/31 2/31 Повторение: вопрос 1 1. Дать определение ООП в

    целом. Чем оно отличается от структурного. 2. Дать определение «структура». 3. Что такое классы, объекты? 4. Что такое представитель и экземпляр классов? 5. Что такое свойства и поведение?
  3. 3/31 3/31 Повторение: класс и объект Класс Объект — это

    описание того, какими свойствами и поведением будет обладать объект — это экземпляр с собственным состоянием этих свойств
  4. 4/31 4/31 Повторение: представитель и экземпляр class Cat { int

    mood, hungry, energy; void Meow(); }; Cat Barsik; Cat* Murzik = new Cat; представитель класса экземпляр класса private — закрытые (по умолчанию) public — открытые
  5. 5/31 5/31 Повторение: вопрос 2 1. Дать определения понятиям: полимофизм,

    наследование и инкапсуляция. 2. Что такое геттеры, сеттеры? 3. Сколько может быть конструкторов и деструкторов? 4. Что будет если описать класс без них? 5. Могут ли они быть приватными? Где это может использоваться? 6. Что такое делегирующий конструктор?
  6. 6/31 6/31 Повторение: три кита ООП Инкапсуляция — это процесс

    скрытого хранения деталей реализации объекта. Пользователи обращаются к объекту через открытый интерфейс (геттеры, сеттеры). Наследование – образование новых классов на основе ранее созданных. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта за счет чего достигается (возможность) использование методов базового класса и дочерных. Функции доступа обычно бывают двух типов: • геттеры — это функции, которые возвращают значения закрытых переменных-членов класса; • сеттеры — это функции, которые позволяют присваивать значения закрытым переменным-членам класса. Правило: Геттеры должны использовать тип возврата по значению или по константной ссылке. Не используйте для геттеров тип возврата по неконстантной ссылке.
  7. 7/31 7/31 Конструктор копирования по умолчанию 1/2 Что выведет?

  8. 8/31 8/31 Конструктор копирования по умолчанию 2/2 Что выведет? А

    вот что!
  9. 9/31 9/31 Копирование конструктором И по итогу получим:

  10. 10/31 10/31 Конструктор копирования 1/2 Barsik myCat

  11. 11/31 11/31 Конструктор копирования по умолчанию 2/2 Barsik myCat

  12. 12/31 12/31 Статические переменные 1/5

  13. 13/31 13/31 Статические переменные 2/5 Статические переменные должны быть инициализированы!

  14. 14/31 14/31 Статические переменные 3/5 А что если…

  15. 15/31 15/31 Статические переменные 4/5 …если так…

  16. 16/31 16/31 Статические переменные 5/5 …если еще так…

  17. 17/31 17/31 Статические функции 1/4 Вывод:

  18. 18/31 18/31 Статические функции 2/4

  19. 19/31 19/31 Статические функции 3/4

  20. 20/31 20/31 Статические функции 4/4 Использование методов без создания объекта

  21. 21/31 21/31 Агрегация классов

  22. 22/31 22/31 Декомпозиция классов

  23. 23/31 23/31 Модификаторы доступа

  24. 24/31 24/31 Наследование 1/6 Базовый класс Дочерние/производные классы Наследование –

    это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью.
  25. 25/31 25/31 Наследование 2/6

  26. 26/31 26/31 Наследование 3/6

  27. 27/31 27/31 Наследование 4/6 class “дочерний класс” : _модификатор_доступа_ “базовый

    класс”
  28. 28/31 28/31 Наследование 5/6

  29. 29/31 29/31 Наследование 6/6

  30. 30/31 30/31 Модификаторы доступа при наследовании Исходный модификатор доступа public

    private protected public- наследование public Недоступен protected private- наследование private Недоступен private protected- наследование protected Недоступен protected
  31. 22 марта 2022 fvb@dscs.pro Федор Витальевич Бушмелев Введение в ООП

    (часть 2)