🗊 Презентация Основы объектноориентированного программирования

Нажмите для полного просмотра!
Основы объектноориентированного программирования, слайд №1 Основы объектноориентированного программирования, слайд №2 Основы объектноориентированного программирования, слайд №3 Основы объектноориентированного программирования, слайд №4 Основы объектноориентированного программирования, слайд №5 Основы объектноориентированного программирования, слайд №6 Основы объектноориентированного программирования, слайд №7 Основы объектноориентированного программирования, слайд №8 Основы объектноориентированного программирования, слайд №9 Основы объектноориентированного программирования, слайд №10 Основы объектноориентированного программирования, слайд №11 Основы объектноориентированного программирования, слайд №12 Основы объектноориентированного программирования, слайд №13 Основы объектноориентированного программирования, слайд №14 Основы объектноориентированного программирования, слайд №15 Основы объектноориентированного программирования, слайд №16 Основы объектноориентированного программирования, слайд №17 Основы объектноориентированного программирования, слайд №18 Основы объектноориентированного программирования, слайд №19 Основы объектноориентированного программирования, слайд №20 Основы объектноориентированного программирования, слайд №21 Основы объектноориентированного программирования, слайд №22 Основы объектноориентированного программирования, слайд №23 Основы объектноориентированного программирования, слайд №24 Основы объектноориентированного программирования, слайд №25 Основы объектноориентированного программирования, слайд №26 Основы объектноориентированного программирования, слайд №27 Основы объектноориентированного программирования, слайд №28 Основы объектноориентированного программирования, слайд №29 Основы объектноориентированного программирования, слайд №30 Основы объектноориентированного программирования, слайд №31 Основы объектноориентированного программирования, слайд №32 Основы объектноориентированного программирования, слайд №33 Основы объектноориентированного программирования, слайд №34 Основы объектноориентированного программирования, слайд №35 Основы объектноориентированного программирования, слайд №36 Основы объектноориентированного программирования, слайд №37 Основы объектноориентированного программирования, слайд №38 Основы объектноориентированного программирования, слайд №39 Основы объектноориентированного программирования, слайд №40 Основы объектноориентированного программирования, слайд №41 Основы объектноориентированного программирования, слайд №42 Основы объектноориентированного программирования, слайд №43 Основы объектноориентированного программирования, слайд №44 Основы объектноориентированного программирования, слайд №45 Основы объектноориентированного программирования, слайд №46 Основы объектноориентированного программирования, слайд №47 Основы объектноориентированного программирования, слайд №48 Основы объектноориентированного программирования, слайд №49 Основы объектноориентированного программирования, слайд №50 Основы объектноориентированного программирования, слайд №51 Основы объектноориентированного программирования, слайд №52

Содержание

Вы можете ознакомиться и скачать презентацию на тему Основы объектноориентированного программирования. Доклад-сообщение содержит 52 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Тема 11 Основы объектно-ориентированного программирования
Описание слайда:
Тема 11 Основы объектно-ориентированного программирования

Слайд 2


Определение ООП Объектно-ориентированное программирование (ООП) - методология программирования, основанная на представлении программы в виде...
Описание слайда:
Определение ООП Объектно-ориентированное программирование (ООП) - методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы могут образовывать иерархию наследования.

Слайд 3


Преимущества использования ООП уменьшение сложности программного обеспечения; повышение надежности программного обеспечения; обеспечение возможности...
Описание слайда:
Преимущества использования ООП уменьшение сложности программного обеспечения; повышение надежности программного обеспечения; обеспечение возможности модификации отдельных компонентов программного обеспечения без изменения остальных его компонентов; обеспечение возможности повторного использования отдельных компонентов программного обеспечения.

Слайд 4


Классы и объекты Класс – определенный пользователем проблемно-ориентированный тип данных, описывающий внутреннюю структуру объектов, которые являются...
Описание слайда:
Классы и объекты Класс – определенный пользователем проблемно-ориентированный тип данных, описывающий внутреннюю структуру объектов, которые являются его экземплярами. Объект (экземпляр класса) находится в таком же отношении к своему классу, в каком переменная находится по отношению к своему типу.

Слайд 5


Категории программистов при объектно-ориентированном подходе Разработчики класса определяют назначение класса, его интерфейс, реализуют интерфейс...
Описание слайда:
Категории программистов при объектно-ориентированном подходе Разработчики класса определяют назначение класса, его интерфейс, реализуют интерфейс класса в рамках предоставленных им средств Пользователи класса создают объекты предоставленного в их распоряжение класса и работают с этими объектами, используя интерфейс, предоставленный разработчиками класса Детали реализации класса обычно скрываются разработчиками от пользователей этого класса.

Слайд 6


Разграничения для различных категорий программистов
Описание слайда:
Разграничения для различных категорий программистов

Слайд 7


Состав класса В состав класса входят данные и функции. В совокупности они называются членами класса. Данные, входящие в класс, называются...
Описание слайда:
Состав класса В состав класса входят данные и функции. В совокупности они называются членами класса. Данные, входящие в класс, называются данными-членами или полями. Функции, принадлежащие классу, называют функциями-членами или методами. Объединение в одной конструкции полей и методов называется инкапсуляцией

Слайд 8


Описание класса в языке C++ (в простейшем случае) class имя_класса { спецификаторы_доступа описания_полей описания_методов }; Описания полей по...
Описание слайда:
Описание класса в языке C++ (в простейшем случае) class имя_класса { спецификаторы_доступа описания_полей описания_методов }; Описания полей по формату совпадают с описаниями переменных . Описания методов представляют собой заголовки функций. Спецификаторы доступа служат для разграничения полномочий между разработчиками и пользователями класса

Слайд 9


Внутренние и внешние методы Методы класса делятся на внутренние и внешние. Внутренние методы реализованы в рамках описания класса; их текст доступен...
Описание слайда:
Внутренние и внешние методы Методы класса делятся на внутренние и внешние. Внутренние методы реализованы в рамках описания класса; их текст доступен для чтения пользователям класса. Внешние методы реализованы как отдельные функции. Для того, чтобы показать , что это – не обычная функция, а метод конкретного класса, к имени метода добавляется имя класса с помощью операции :: (расширение области видимости). Текст внешних методов может быть скрыт от пользователей класса.

Слайд 10


Пример описания и реализации класса (точка на плоскости) 1) Реализация с использованием внутренних методов
Описание слайда:
Пример описания и реализации класса (точка на плоскости) 1) Реализация с использованием внутренних методов

Слайд 11


Пример описания и реализации класса (точка на плоскости) 2) Реализация с использованием внешних методов
Описание слайда:
Пример описания и реализации класса (точка на плоскости) 2) Реализация с использованием внешних методов

Слайд 12


Использование класса Point2D // ВНИМАНИЕ! Приведенный текст не работает // (ошибки компиляции) Point2D p; // создание объекта p.x = 12; // обращение...
Описание слайда:
Использование класса Point2D // ВНИМАНИЕ! Приведенный текст не работает // (ошибки компиляции) Point2D p; // создание объекта p.x = 12; // обращение к полям объекта p.y = -3; cout

Слайд 13


Недостатки приведенной реализации После создания объекта значения его полей не определены (решается написанием конструкторов) Пользователь класса не...
Описание слайда:
Недостатки приведенной реализации После создания объекта значения его полей не определены (решается написанием конструкторов) Пользователь класса не имеет доступа к элементам (полям и методам) созданного объекта (решается использованием спецификаторов доступа)

Слайд 14


Спецификаторы доступа private: - члены класса, доступные только разработчикам класса (т.е. только при реализации методов этого класса) public: -...
Описание слайда:
Спецификаторы доступа private: - члены класса, доступные только разработчикам класса (т.е. только при реализации методов этого класса) public: - члены класса, доступные как разработчикам, так и пользователям класса protected: - члены класса, доступные разработчикам класса и разработчикам классов-потомков Спецификатор по умолчанию – private:

Слайд 15


Точка на плоскости (вариант 2) // ошибки компиляции исчезли! Point2D p; // создание объекта p.x = 12; // обращение к полям объекта p.y = -3; cout
Описание слайда:
Точка на плоскости (вариант 2) // ошибки компиляции исчезли! Point2D p; // создание объекта p.x = 12; // обращение к полям объекта p.y = -3; cout

Слайд 16


Рекомендации по использованию разграничений доступа Поля класса следует максимально защитить от пользователей класса, объявив их со спецификатором...
Описание слайда:
Рекомендации по использованию разграничений доступа Поля класса следует максимально защитить от пользователей класса, объявив их со спецификатором private: Для работы с объектами пользователь может пользоваться методами этих объектов, объявленными со спецификатором public: Для получения информации о характеристиках объекта (в том числе о защищённых полях) должны быть написаны т.н. get-методы Для изменения характеристик объекта (в том числе защищённых полей) должны быть написаны т.н. set-методы

Слайд 17


Точка на плоскости (вариант 3) Описание класса
Описание слайда:
Точка на плоскости (вариант 3) Описание класса

Слайд 18


Точка на плоскости (вариант 3) Реализация класса
Описание слайда:
Точка на плоскости (вариант 3) Реализация класса

Слайд 19


Точка на плоскости (вариант 3) Использование класса Point2D p; // создание объекта p.x = 12; // обращение к защищённым полям объекта p.y = -3; //...
Описание слайда:
Точка на плоскости (вариант 3) Использование класса Point2D p; // создание объекта p.x = 12; // обращение к защищённым полям объекта p.y = -3; // приведёт к ошибкам компиляции p.SetX(12); // надо использовать set-методы p.SetY(-3); cout

Слайд 20


Константные методы Методы, не изменяющие значения полей объекта, для которого эти методы применяются , называются константными. Для объявления...
Описание слайда:
Константные методы Методы, не изменяющие значения полей объекта, для которого эти методы применяются , называются константными. Для объявления константного метода необходимо записать слово const в конце заголовка такого метода (как в описании класса, так и в реализации) Преимущества константных методов: дополнительный контроль компилятора за правильностью написания; в функциях, в которые объект передаётся по константной ссылке, для этого объекта можно вызывать только константные методы.

Слайд 21


Точка на плоскости (вариант 4) Описание и реализация класса
Описание слайда:
Точка на плоскости (вариант 4) Описание и реализация класса

Слайд 22


Точка на плоскости (вариант 4) Использование класса Если методы класса Point2D, вызываемые в функции PrintPoint, не объявлены константными, возникнет...
Описание слайда:
Точка на плоскости (вариант 4) Использование класса Если методы класса Point2D, вызываемые в функции PrintPoint, не объявлены константными, возникнет ошибка компиляции этого кода!

Слайд 23


Конструкторы Конструктор – специальный метод, который неявно вызывается при создании нового объекта. Назначение конструктора – выполнение...
Описание слайда:
Конструкторы Конструктор – специальный метод, который неявно вызывается при создании нового объекта. Назначение конструктора – выполнение дополнительных действий по инициализации объекта (например, задание начальных значений полей создаваемого объекта).

Слайд 24


Описание конструктора Конструктор может быть как внутренним, так и внешним методом; Имя конструктора совпадает с именем класса; Конструктор не...
Описание слайда:
Описание конструктора Конструктор может быть как внутренним, так и внешним методом; Имя конструктора совпадает с именем класса; Конструктор не возвращает никакого значения (даже void); За счет механизма перегрузки может быть создано несколько конструкторов, различающихся набором параметров; Если ни одного конструктора не написано, реализуется т.н. конструктор по умолчанию без параметров. Этот конструктор не выполняет никаких дополнительных действий.

Слайд 25


Точка на плоскости (вариант 5) Описание класса
Описание слайда:
Точка на плоскости (вариант 5) Описание класса

Слайд 26


Точка на плоскости (вариант 5) Реализация конструкторов За счет использования параметров по умолчанию можно обойтись одним конструктором:
Описание слайда:
Точка на плоскости (вариант 5) Реализация конструкторов За счет использования параметров по умолчанию можно обойтись одним конструктором:

Слайд 27


Вызов нужного конструктора
Описание слайда:
Вызов нужного конструктора

Слайд 28


Список инициализаторов в конструкторе В реализации конструктора может быть задан список инициализаторов, который записывается после заголовка...
Описание слайда:
Список инициализаторов в конструкторе В реализации конструктора может быть задан список инициализаторов, который записывается после заголовка конструктора через знак :. Элементы списка разделяются запятыми. Каждый элемент списка содержит имя поля и способ его инициализации в круглых скобках. Для обычных полей использование списка инициализации допустимо, но не обязательно. Список инициализации обязателен: если в качестве поля задаётся объект другого класса, для которого должен быть запущен конструктор; для вызова конструктора предка при использовании механизма наследования

Слайд 29


Пример конструктора со списком инициализаторов Обратите внимание на то, что тело конструктора стало пустым!
Описание слайда:
Пример конструктора со списком инициализаторов Обратите внимание на то, что тело конструктора стало пустым!

Слайд 30


Деструкторы Деструктор – специальный метод, который неявно вызывается при корректном уничтожении объекта. Назначение деструктора – выполнение...
Описание слайда:
Деструкторы Деструктор – специальный метод, который неявно вызывается при корректном уничтожении объекта. Назначение деструктора – выполнение дополнительных действий по освобождении ресурсов, захваченных при создании объекта или в процессе работы с ним. Если деструктор не написан, вызывается т.н. деструктор по умолчанию, который не выполняет никаких дополнительных действий.

Слайд 31


Вызовы деструктора void my_func() { Point2D p1; Point2D* t1 = new Point2D(10, -3); Point2D* t2 = new Point2D(0, 16); … delete t1; // вызывается...
Описание слайда:
Вызовы деструктора void my_func() { Point2D p1; Point2D* t1 = new Point2D(10, -3); Point2D* t2 = new Point2D(0, 16); … delete t1; // вызывается деструктор для // объекта, адрес которого хранится в t1 return; // вызывается деструктор для локального // объекта p1, время жизни которого // истекает } Для объекта, адрес которого хранится в t2, деструктор НЕ ВЫЗЫВАЕТСЯ!

Слайд 32


Описание деструктора Деструктор может быть как внутренним, так и внешним методом; Имя деструктора совпадает с именем класса, перед которым стоит знак...
Описание слайда:
Описание деструктора Деструктор может быть как внутренним, так и внешним методом; Имя деструктора совпадает с именем класса, перед которым стоит знак ~; Деструктор не имеет параметров.

Слайд 33


Пример 2: класс «человек» Описание класса
Описание слайда:
Пример 2: класс «человек» Описание класса

Слайд 34


Пример 2: класс «человек» Реализация конструктора и деструктора
Описание слайда:
Пример 2: класс «человек» Реализация конструктора и деструктора

Слайд 35


Конструктор копирования Конструктор копирования – специальный конструктор, который получает в качестве параметра константную ссылку на объект этого...
Описание слайда:
Конструктор копирования Конструктор копирования – специальный конструктор, который получает в качестве параметра константную ссылку на объект этого же типа:

Слайд 36


Вызовы конструктора копирования Конструктор копирования вызывается: при создании нового объекта с инициализацией существующим объектом:
Описание слайда:
Вызовы конструктора копирования Конструктор копирования вызывается: при создании нового объекта с инициализацией существующим объектом:

Слайд 37


Вызовы конструктора копирования Конструктор копирования вызывается: при передаче в функцию объекта по значению:
Описание слайда:
Вызовы конструктора копирования Конструктор копирования вызывается: при передаче в функцию объекта по значению:

Слайд 38


Вызовы конструктора копирования Конструктор копирования вызывается: при выходе из функции, возвращающей объект:
Описание слайда:
Вызовы конструктора копирования Конструктор копирования вызывается: при выходе из функции, возвращающей объект:

Слайд 39


Когда нужно писать конструктор копирования? Если конструктор копирования не написан, работает т.н. стандартный конструктор копирования Стандартный...
Описание слайда:
Когда нужно писать конструктор копирования? Если конструктор копирования не написан, работает т.н. стандартный конструктор копирования Стандартный конструктор копирует значения всех полей источника в создаваемый объект. Если этого достаточно, писать собственный конструктор копирования не нужно. Для класса Point2D можно воспользоваться стандартным конструктором. Класс Person требует написания собственного конструктора копирования, т.к. необходимо выделить память для хранения новой строки с именем.

Слайд 40


Пример 2: класс «человек» Реализация конструктора копирования
Описание слайда:
Пример 2: класс «человек» Реализация конструктора копирования

Слайд 41


Указатель this При работе методов класса специальный указатель this содержит адрес объекта, для которого вызывается этот метод.
Описание слайда:
Указатель this При работе методов класса специальный указатель this содержит адрес объекта, для которого вызывается этот метод.

Слайд 42


Константные и статические поля Поле класса может быть объявлено константным с помощью модификатора const. Константные поля могут содержать различные...
Описание слайда:
Константные и статические поля Поле класса может быть объявлено константным с помощью модификатора const. Константные поля могут содержать различные значения для различных объектов. Эти значения задаются в конструкторе и в дальнейшем не могут быть изменены. Поле класса может быть объявлено статическим с помощью модификатора static. При реализации класса необходимо определить поле, общее для всех объектов этого класса. Если статическое поле объявлено как public, к нему можно обращаться и пользователям класса

Слайд 43


Пример работы с константными и статическими полями
Описание слайда:
Пример работы с константными и статическими полями

Слайд 44


Выброс исключений в методах класса Методы класса могут выбрасывать исключения, информируя пользователей класса о неправильной работе с объектами...
Описание слайда:
Выброс исключений в методах класса Методы класса могут выбрасывать исключения, информируя пользователей класса о неправильной работе с объектами класса. Механизм выброса исключений является одним из допустимых способов передачи сообщений пользователям класса. Для конструкторов это – единственный способ информации пользователей о невозможности создать объект.

Слайд 45


Пример выброса исключений в конструкторе Поле «имя» для каждого объекта класса Person не должно быть пустой строкой. Кроме того, недопустима передача...
Описание слайда:
Пример выброса исключений в конструкторе Поле «имя» для каждого объекта класса Person не должно быть пустой строкой. Кроме того, недопустима передача в конструктор пустого указателя.

Слайд 46


Перехват выброшенных исключений
Описание слайда:
Перехват выброшенных исключений

Слайд 47


Перехват выброшенных исключений (2-й способ)
Описание слайда:
Перехват выброшенных исключений (2-й способ)

Слайд 48


Использование стандартного класса exception Для эффективной обработки выбрасываемых исключений можно воспользоваться стандартным классом exception. В...
Описание слайда:
Использование стандартного класса exception Для эффективной обработки выбрасываемых исключений можно воспользоваться стандартным классом exception. В его состав, помимо других методов, входят: конструктор, получающий в качестве параметра строку символов – текст сообщения, связанного с исключением; метод what(), который возвращает строку, переданную в конструктор.

Слайд 49


Пример использования класса exception
Описание слайда:
Пример использования класса exception

Слайд 50


Дружественные функции и классы Иногда желательно иметь непосредственный доступ извне к скрытым полям класса. Это достигается за счет использования...
Описание слайда:
Дружественные функции и классы Иногда желательно иметь непосредственный доступ извне к скрытым полям класса. Это достигается за счет использования дружественных функций и классов. Дружественная функция, которая может быть обычной функцией или методом другого класса, должна быть описана внутри класса, к скрытым полям которого она должна иметь доступ, с описателем friend, и получать в качестве параметра объект класса или ссылку на этот объект. Если все методы какого-то класса должны иметь доступ к скрытым полям другого, то весь такой класс можно объявить дружественным.

Слайд 51


Примеры задания дружественных функций и классов class Point2D { … friend my_func(Point2D&); friend another_class::method(Point2D, int); … friend...
Описание слайда:
Примеры задания дружественных функций и классов class Point2D { … friend my_func(Point2D&); friend another_class::method(Point2D, int); … friend class some_class; };

Слайд 52


Использование стража включения Для предотвращения ошибок, связанных с повторным описанием класса, логично обрамлять это описание стражем включения:
Описание слайда:
Использование стража включения Для предотвращения ошибок, связанных с повторным описанием класса, логично обрамлять это описание стражем включения:



Похожие презентации
Mypresentation.ru
Загрузить презентацию