Разделы презентаций


Программирование

Содержание

Стек (Stack)Стек — это коллекция, элементы которой получают по принципу «последний вошел, первый вышел» (Last-In-First-Out или LIFO). Это значит, что мы будем иметь доступ только к последнему добавленному элементу.В отличие от списков,

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

Слайд 1Программирование
Лекция 8

ПрограммированиеЛекция 8

Слайд 2Стек (Stack)
Стек — это коллекция, элементы которой получают по принципу

«последний вошел, первый вышел» (Last-In-First-Out или LIFO). Это значит, что мы

будем иметь доступ только к последнему добавленному элементу.
В отличие от списков, мы не можем получить доступ к произвольному элементу стека. Мы можем только добавлять или удалять элементы с помощью специальных методов. 

Стек (Stack)Стек — это коллекция, элементы которой получают по принципу «последний вошел, первый вышел» (Last-In-First-Out или LIFO). Это

Слайд 3Очередь (Queue)
Очереди очень похожи на стеки. Они также не дают

доступа к произвольному элементу, но, в отличие от стека, элементы

кладутся (enqueue) и забираются (dequeue) с разных концов. Такой метод называется «первый вошел, первый вышел» (First-In-First-Out или FIFO). То есть забирать элементы из очереди мы будем в том же порядке, что и клали. Как реальная очередь или конвейер.
Очередь (Queue)Очереди очень похожи на стеки. Они также не дают доступа к произвольному элементу, но, в отличие

Слайд 4Абстрактные типы данных
Программисты часто определяют классы для представления более общих

концепций.
Абстрактный тип данных (abstract data type — ADT). ADT

описывает данные в общей манере, без деталей, связанных с языком или реализацией.
Рассмотрим для примера стек.
Стек содержит множество элементов. Операции:
создание пустого стека;
добавление элемента в вершину стека (т.е. заталкивание (push) элемента);
удаление элемента из вершины стека (т.е. выталкивание (pop) элемента);
проверка, полон ли стек;
проверка, пуст ли стек.
Абстрактные типы данныхПрограммисты часто определяют классы для представления более общих концепций. Абстрактный тип данных (abstract data type

Слайд 5Класс для абстрактного типа данных - стека
typedef указывает, что Item

является unsigned long

Класс для абстрактного типа данных - стекаtypedef указывает, что Item является unsigned long

Слайд 6Методы класса
Конструктор по умолчанию гарантирует, что все стеки будут создаваться

пустыми.

Методы классаКонструктор по умолчанию гарантирует, что все стеки будут создаваться пустыми.

Слайд 7Тест. Заказы на покупки, которые берутся со стопки на столе,

используя алгоритм LIFO:

Тест. Заказы на покупки, которые берутся со стопки на столе, используя алгоритм LIFO:

Слайд 9Перегрузка операций
Перегрузка операций — это пример полиморфизма C++.
C++

позволяет определять несколько функций с одинаковыми именами и разной сигнатурой

(списками аргументов). Это называлось перегрузкой функций или функциональным полиморфизмом.
Цель такой перегрузки — позволить использовать одно и то же имя функции для некоторой базовой операции, несмотря на то, что она применяется к данным разных типов.
Перегрузка операций Перегрузка операций — это пример полиморфизма C++. C++ позволяет определять несколько функций с одинаковыми именами

Слайд 10Перегрузка операций
Например, * - выдает значение, когда применяется к

адресу
* - перемножение для двух чисел
Например, operator+ () перегружает операцию

+, a operator* () — операцию *.
Операция должна быть допустимой операцией C++, а не произвольным символом!
Например, объявить функцию operator@ () не получится, т.к. в C++ нет операции @.
Перегрузка операций Например, * - выдает значение, когда применяется к адресу* - перемножение для двух чиселНапример, operator+

Слайд 11Пример перегрузки операции
Класс Time предоставляет методы для Изменения и

сброса времени, для
отображения значений времени и для сложения двух

значений времени.
Пример перегрузки операции Класс Time предоставляет методы для Изменения и сброса времени, для отображения значений времени и

Слайд 12Аргумент является ссылкой, но возвращаемый тип — нет

Аргумент является ссылкой, но возвращаемый тип — нет

Слайд 13Суммирование времени
Вывод программы:

Суммирование времениВывод программы:

Слайд 14Добавление операции сложения
Методы:
Использование:

Добавление операции сложенияМетоды:Использование:

Слайд 15Дополнительные перегруженные операции
В заголовочный файл:
Файл реализации:
Использование:

Дополнительные перегруженные операцииВ заголовочный файл:Файл реализации:Использование:

Слайд 16Наследование классов
Одна из главных целей объектно-ориентированного программирования — повторное использование

кода. При разработке нового проекта, особенно крупного, удобнее повторно использовать

уже проверенный код, а не заново изобретать его. Применение старого кода экономит время, а поскольку он уже использован и проверен, в программу не будут внесены новые ошибки. К тому же чем меньше приходится заниматься мелкими деталями, тем удобнее сосредоточиться на общей стратегии программы.
Наследование классов — позволяет порождать новые классы от старых, называемых базовыми классами. Производный класс наследует все свойства, включая методы, старого класса. Унаследовать состояние обычно легче, чем построить его с нуля.
Наследование классовОдна из главных целей объектно-ориентированного программирования — повторное использование кода. При разработке нового проекта, особенно крупного,

Слайд 17Преимущества наследования
Добавлять новые возможности в существующий класс. Например, в существующий

базовый класс массива можно добавить арифметические операции.
Добавлять данные, которые

представляет класс. Например, взяв за основу базовый класс строки, можно породить класс, в котором добавлен член данных,
представляющий цвет, и который будет использоваться при выводе строки на экран.
Изменять поведение методов класса. Например, от класса Passenger, который представляет услуги, предоставляемые пассажиру авиалинии, можно породить класс First Class Passenger с более высоким уровнем обслуживания.
Преимущества наследованияДобавлять новые возможности в существующий класс. Например, в существующий базовый класс массива можно добавить арифметические операции.

Слайд 18Базовый класс
Когда один класс наследуется от другого, исходный класс называется

базовым классом, а наследующий — производным классом.

Базовый классКогда один класс наследуется от другого, исходный класс называется базовым классом, а наследующий — производным классом.

Слайд 19Использование базового класса

Использование базового класса

Слайд 20Порождение класса
Данный конкретный заголовок означает, что TableTennisPlayer является
общедоступным базовым

классом — это называется открытым порождением.
Объект производного типа хранит данные-члены

базового типа. (Производный класс наследует реализацию базового класса.)
Объект производного типа может использовать методы базового типа.
(Производный класс наследует интерфейс базового класса.)

Что необходимо добавить к этим унаследованным свойствам?
Производному классу нужны собственные конструкторы.
Производный класс может при необходимости добавлять дополнительные
данные-члены и методы.

Порождение классаДанный конкретный заголовок означает, что TableTennisPlayer является общедоступным базовым классом — это называется открытым порождением.Объект производного

Слайд 21Производный класс
Первый конструктор RatedPlayer использует
отдельные формальные параметры для каждого

члена, а второй конструктор — параметр TableTennisPlayer, связывающий три элемента

(firstname, lastname и hasTable)
в единое целое.
Производный классПервый конструктор RatedPlayer использует отдельные формальные параметры для каждого члена, а второй конструктор — параметр TableTennisPlayer,

Слайд 22Использование базового и производного классов

Использование базового и производного классов

Слайд 23Полиморфное открытое наследование
Возможны ситуации, когда метод должен обладать разным

поведением в производном и базовом классах. Другими словами, поведение конкретного

метода может отличаться в зависимости от объекта, который его вызывает. Такое более сложное поведение называется полиморфным, поскольку у метода имеется несколько моделей поведения в зависимости от контекста.
Полиморфное открытое наследование Возможны ситуации, когда метод должен обладать разным поведением в производном и базовом классах. Другими

Слайд 24Пример
Разработка двух классов. Один класс представляет чековый счет Brass Account,

а второй — чековый счет Brass Plus, в котором добавлено

свойство защиты от овердрафта (превышения кредита).
ПримерРазработка двух классов. Один класс представляет чековый счет Brass Account, а второй — чековый счет Brass Plus,

Слайд 25Использование
поведение при виртуальной функции ViewAcct():

Использованиеповедение при виртуальной функции ViewAcct():

Слайд 26Резюме
Обычно объявление класса разделяется на две части, как правило,

сохраняемые в разных файлах. Объявление класса с методами, представленными с

помощью прототипов функций, попадает в заголовочный файл. Исходный код, составляющий функции-члены, попадает в файл методов. Такой подход позволяет отделить описание интерфейса от деталей реализации.
Класс — это определяемый пользователем тип, а объект — экземпляр класса.
Для того, чтобы использовать класс, необходимо знать только его открытый интерфейс.
Объект является переменной этого типа или эквивалентом переменной.
Если метод нуждается в явном доступе к объекту, который его вызвал, он может сделать это через указатель this.
Бьярне Страуструп: "Упрощайте язык для себя. Не считайте себя обязанными применять все средства языка, и уж тем более не пытайтесь использовать их все в первый же день".
Резюме Обычно объявление класса разделяется на две части, как правило, сохраняемые в разных файлах. Объявление класса с

Слайд 27Принципы ООП
1. Абстрагирование
Объект – это программная конструкция, представляющая некоторую сущность.

Каждый объект обладает определенной функциональностью и свойствами. Объект представляет собой

завершенную функциональную единицу, содержащую все данные и предоставляющую всю функциональность, необходимую для решения задачи, для которой он предназначен. Описание объектов реального мира при помощи программных объектов называют абстрагированием (abstraction).

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

Слайд 28Принципы ООП
2. Инкапсуляция
Смысл инкапсуляции состоит в отделении реализации объекта (его

внутреннего содержания) от способа взаимодействия с ним. Другие объекты приложения

взаимодействуют с рассматриваемым объектом посредством имеющихся у него открытых (public) свойств и методов, которые составляют его интерфейс. 
В общем виде под интерфейсом понимается открытый способ взаимодействия между разными системами. Если интерфейс класса не будет меняться, то приложение сохраняет способность к взаимодействию с его объектами, даже если в новой версии класса его реализация значительно изменится.

Принципы ООП2. ИнкапсуляцияСмысл инкапсуляции состоит в отделении реализации объекта (его внутреннего содержания) от способа взаимодействия с ним.

Слайд 29Принципы ООП
3. Наследование
Наследование есть свойство объектов порождать своих потомков. Объект-потомок

автоматически наследует от родителя все поля и методы, может дополнять

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

Слайд 30Принципы ООП
4. Полиморфизм
Полиморфизм - это свойство родственных объектов (т.е. объектов,

имеющих одного общего родителя) решать схожие по смыслу проблемы разными

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

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика