Share
Embed
Программирование – 1 курс весна 2022 – 4 занятие
ТиМПИ
March 15, 2022
Transcript
26 slides
-
2/26 2/26 План занятия 1. Общая парадигма ООП 2. Понятия
классов и объектов в С++ 3. Сеттеры и геттеры, указатель this 4. Конструкторы и деструкторы классов, конструктор по умолчанию, их перегрузка 5. Конструктор копирования -
3/26 3/26 Общая парадигма ООП Структурное программирование Объектно-ориентированное программирование —
парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков — парадигма программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования -
4/26 4/26 Объект и класс 1/2 Класс Объект class <имя
класса> { [данные и методы] }; -
5/26 5/26 Объект и класс 2/2 Класс Объект — это
описание того, какими свойствами и поведением будет обладать объект — это экземпляр с собственным состоянием этих свойств -
6/26 6/26 Создание представителя и экземпляра класса class Cat {
int mood, hungry, energy; void Meow(); }; Cat Barsik; Cat* Murzik = new Cat; представитель класса экземпляр класса private — закрытые (по умолчанию) public — открытые -
8/26 8/26 Добавим метод setMood() Инкапсуляция — это принцип ООП,
заключающийся в контроле доступа к полям и методам объекта. → Инкапсуляция помогает защитить данные и саму программу от постороннего вмешательства. → Пользователь будет работать в программе через интерфейс, не обращая внимает на то, как программа работает. -
11/26 11/26 Геттеры и сеттеры 1/2 Геттеры и сеттеры —
это методы доступа, которые помогают управлять доступом к различным переменным в коде. • get() — применяется для чтения переменной • set() — применяется для записи переменной Настроение Барсика оценивается в: -858993460 -
13/26 13/26 Указатель this 1/2 Файл cat.h Файл cat.cpp Указатель
this хранит адрес определённого объекта класса и неявно указывает методам класса с данными какого объекта надо работать. -
14/26 14/26 Указатель this 2/2 • this представляет собой неявно
определенный указатель на сам объект • c помощью this метод класса определяет, с данными какого объекта ему предстоит работать • при вызове метода ему передается неявный аргумент, содержащий адрес объекта, для которого эта функция вызывается Использование this необходимо в функциях, которые непосредственно работают с указателем на объект: • this — указатель на объект (адрес объекта) • *this — разыменованый указатель (сам объект) … Некий класс Объект 1 this Объект 2 this Объект N this -
15/26 15/26 Передача объекта класса в качестве аргумента 1/2 Файл
cat.h Файл cat.cpp Barsik myCat -
16/26 16/26 Передача объекта класса в качестве аргумента 2/2 Файл
cat.h Файл cat.cpp & Barsik myCat -
18/26 18/26 Конструктор и деструктор 1/2 Конструктор — это особый
метод класса, который выполняется автоматически в момент создания объекта класса. Деструктор — это особый метод класса, который срабатывает во время уничтожения объектов класса (используется для освобождения динамической памяти, которую выделял конструктор для объекта). -
20/26 20/26 Базовые замечания • Конструктор и деструктор, мы всегда
объявляем в разделе public. • При объявлении конструктора, тип данных возвращаемого значения не указывается, в том числе — void. • У деструктора также нет типа данных для возвращаемого значения, к тому же деструктору нельзя передавать никаких параметров. • Имя класса и конструктора должно быть идентично. • Имя деструктора идентично имени конструктора, но с приставкой ~ . • В классе допустимо создавать несколько конструкторов, если это необходимо. Их имена будут одинаковыми. Компилятор будет их различать по передаваемым параметрам (как при перегрузке функций). Если мы не передаем в конструктор параметры, он считается конструктором по умолчанию. • В классе может быть объявлен только один деструктор. -
25/26 25/26 Реализация Cat mood - field hungry - field
energy - field meow() - method Feed hungry -- mood ++ meow! Sleep hungry -- energy ++ Play energy -- mood ++ meow!