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


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

Содержание

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

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

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

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

Слайд 2Объектно-ориентированное программирование (ООП)
(ООП) — это особый концептуальный подход к

проектированию программ, и C++ расширяет язык С средствами, облегчающими применение

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


Объектно-ориентированное программирование (ООП) (ООП) — это особый концептуальный подход к проектированию программ, и C++ расширяет язык С

Слайд 3Процедурное программирование и ООП
При процедурном подходе вы сначала концентрируетесь

на процедурах, которым должны следовать, а только потом думаете о

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

Слайд 4Абстракции и классы
Жизнь полна сложностей, и единственный способ справится со

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

это ключевой шаг в представлении информации в терминах ее интерфейса с пользователем. То есть вы абстрагируете основные операционные характеристики проблемы и выражаете решение в этих терминах.
Например, тип char занимает 1 байт памяти, a double — обычно 8 байт.
Например, к типу int можно применять все арифметические операции. Целые числа можно складывать, вычитать, умножать, делить.
Абстракции и классыЖизнь полна сложностей, и единственный способ справится со сложностью — это ограничиться упрощенными абстракциями.В компьютерных

Слайд 5Спецификация базового типа выполняет три вещи:
Определяет, сколько памяти нужно объекту.


Определяет, как интерпретируются биты памяти.
Определяет, какие операции, или методы,

могут быть применены с использованием этого объекта данных.

Но когда вы определяете пользовательский тип в C++, то должны предоставить эту информацию самостоятельно.

Спецификация базового типа выполняет три вещи:Определяет, сколько памяти нужно объекту. Определяет, как интерпретируются биты памяти. Определяет, какие

Слайд 6Классы в C++
Класс — это двигатель C++, предназначенный для

трансляции абстракции в пользовательские типы.

Обычно спецификация класса состоит из

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

Классы в C++ Класс — это двигатель C++, предназначенный для трансляции абстракции в пользовательские типы. Обычно спецификация

Слайд 7Что такое интерфейс?
Интерфейс — это совместно используемая часть, предназначенная

для взаимодействия двух систем, например, между компьютером и принтером или

между пользователем и компьютерной программой.
Например, чтобы определить количество символов в объекте string, вам не нужно открывать этот объект и смотреть что у него внутри. Вы просто используете метод size () класса, предоставленный его разработчиком. Таким образом, метод size () является частью открытого интерфейса между пользователем и объектом класса string.
Обычно программисты на C++ помещают интерфейс, имеющий форму определения класса, в заголовочный файл, а реализацию в форме кода для методов класса — в файл исходного кода.
Что такое интерфейс? Интерфейс — это совместно используемая часть, предназначенная для взаимодействия двух систем, например, между компьютером

Слайд 8Создание класса
Давайте взглянем на класс, представляющий акционерный капитал.
Операции:
приобретение пакета акций

компании;
приобретение дополнительных акций в имеющийся пакет;
продажа пакета;
обновление

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

Слайд 9Объявление класса под именем Stock
#ifndef применяется для защиты против многократного

включения файла
Соглашение о написании имен классов с заглавной буквы
Экземпляры класса:

Объявление класса под именем Stock#ifndef применяется для защиты против многократного включения файлаСоглашение о написании имен классов с

Слайд 10Управление доступом
Слова private и public позволяют управлять доступом к

членам класса. Любая программа, которая использует объект определенного класса, может

иметь непосредственный доступ к членам из раздела public. Доступ к членам объекта из раздела private программа может получить только через открытые функции-члены из раздела public.
Открытые функции-члены действуют в качестве посредников между программой и закрытыми членами объекта; они предоставляют интерфейс между объектом и программой. Эта изоляция данных от прямого доступа со стороны программы называется сокрытием данных.

Сокрытие данных предохраняет целостность данных!

Управление доступом Слова private и public позволяют управлять доступом к членам класса. Любая программа, которая использует объект

Слайд 11Инкапсуляция
Открытый интерфейс представляет абстрактный компонент проектного решения.
Собрание деталей реализации

в одном месте и отделение их от абстракции называется инкапсуляцией.

Сокрытие данных (помещение данных в раздел private класса) является примером инкапсуляции, и поэтому оно скрывает функциональные детали реализации в разделе private.
ИнкапсуляцияОткрытый интерфейс представляет абстрактный компонент проектного решения. Собрание деталей реализации в одном месте и отделение их от

Слайд 12public или private?
Поскольку одним из главных принципов ООП является сокрытие

данных, то единицы данных обычно размещаются в разделе private.
Использовать ключевое

слово private в объявлении класса не обязательно, поскольку это спецификатор доступа к объектам класса по умолчанию:

public или private?Поскольку одним из главных принципов ООП является сокрытие данных, то единицы данных обычно размещаются в

Слайд 13Классы и структуры
Описания классов выглядят очень похожими на объявления структур

с дополнениями в виде функций-членов и меток видимости private и

public.
Фактически C++ расширяет на структуры те же самые свойства, которые есть у классов. Единственная разница состоит в том, что типом доступа по умолчанию у структур является public, в то время как у классов — private.
Классы и структурыОписания классов выглядят очень похожими на объявления структур с дополнениями в виде функций-членов и меток

Слайд 14Реализация функций-членов класса
Определения функций-членов очень похожи на определения обычных функций.
При

определении функции-члена для идентификации класса, которому принадлежит функция, используется операция

разрешения контекста (: :).
Методы класса имеют доступ к private-компонентам класса.
Реализация функций-членов классаОпределения функций-членов очень похожи на определения обычных функций.При определении функции-члена для идентификации класса, которому принадлежит

Слайд 15Реализация класса Stock

Реализация класса Stock

Слайд 17Использование классов
Целью языка C++ является сделать применение классов насколько

возможно простым — подобно базовым встроенным типам вроде int и

char.
Создавать объект класса можно за счет объявления переменной этого класса либо использования операция new для размещения в памяти объекта этого класса. Объекты можно передавать в аргументах, возвращать их из функций, присваивать один объект другому.
Создим объект типа Stock по имени f luffy_the_cat.

Использование классов Целью языка C++ является сделать применение классов насколько возможно простым — подобно базовым встроенным типам

Слайд 18Клиент-серверная модель
Клиентом является программа, которая использует класс.
Объявление класса, включая

его методы, образует сервер, который является ресурсом, доступным нуждающейся в

нем программе.
Клиент взаимодействует с сервером только через открытый (public) интерфейс. Это означает, что единственной ответственностью клиента и, как следствие — программиста, является знание интерфейса.
Ответственностью сервера и, как следствие — его разработчика, является обеспечение того, чтобы его реализация надежно и точно соответствовала интерфейсу. Любые изменения, вносимые разработчиком сервера в класс, должны касаться деталей реализации, но не интерфейса. Это позволяет программистам разрабатывать клиент и сервер независимо друг от друга, без внесения в сервер таких изменений, которые нежелательным образом отобразятся на поведении клиента.
Клиент-серверная модельКлиентом является программа, которая использует класс. Объявление класса, включая его методы, образует сервер, который является ресурсом,

Слайд 19Конструкторы и деструкторы классов
Для автоматической инициализации объектов при их

создании в C++ предлагаются специальные функции-члены, называемые конструкторами класса, которые

предназначены для создания новых объектов и присваивания значений их членам-данным.
Имя метода конструктора совпадает с именем класса. Например, возможный конструктор для класса Stock — это функция-член Stock ().
Конструкторы не имеют возвращаемого значения, но они не объявляются с типом void. Фактически конструкторы не имеют объявленного типа.
Конструкторы и деструкторы классов Для автоматической инициализации объектов при их создании в C++ предлагаются специальные функции-члены, называемые

Слайд 20Конструктор для класса Stock
Использование конструкторов
Это тот же код, который использовался

для функции acquire (). Разница в том, что в данном

случае программа автоматически вызовет конструктор при объявлении объекта!

// вызов конструктора явно

// вызов конструктора неявно

// динамическое выделение памяти

Конструктор для класса StockИспользование конструкторовЭто тот же код, который использовался для функции acquire (). Разница в том,

Слайд 21Деструкторы
Деструктор призван очищать всяческий «мусор».
Деструктор формируется из имени класса и

предваряющего его символа тильды (~).
Подобно конструктору, деструктор не имеет ни

возвращаемого значения, ни объявляемого типа. Однако в отличие от конструктора, деструктор не должен иметь аргументы.

// прототип деструктора

// реализация деструктора

ДеструкторыДеструктор призван очищать всяческий «мусор».Деструктор формируется из имени класса и предваряющего его символа тильды (~).Подобно конструктору, деструктор

Слайд 22Усовершенствование класса Stock

Усовершенствование класса Stock

Слайд 23Файл реализации

Файл реализации

Слайд 24Файл клиентской программы

Файл клиентской программы

Слайд 25Вывод программы

Вывод программы

Слайд 26Указатель this
Создадим функцию, работающую с двумя объектами с целью их

сравнения
// прототип функции
// реализация функции
Массив объектов
Для инициализации элементов массива можно

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

Слайд 27Вопросы
Что такое класс?
Что такое инкапсуляция?
Каково отношение между объектом и

классом?
Определите класс для представления банковского счета. Данные-члены должны включать

имя вкладчика, номер счета (используйте строку) и баланс. Функции-члены должны позволять следующее:
создание объекта и его инициализация;
отображение имени вкладчика, номера счета и баланса;
добавление на счет суммы денег, переданной в аргументе;
снятие суммы денег, переданной в аргументе.
Приведите объявление класса без реализации методов.
ВопросыЧто такое класс? Что такое инкапсуляция?Каково отношение между объектом и классом? Определите класс для представления банковского счета.

Слайд 28Вопросы
Когда вызываются конструкторы класса? Когда вызываются деструкторы?
Напишите код конструктора

для класса банковского счета, описанного в вопросе 5.
Что такое

конструктор по умолчанию?
ВопросыКогда вызываются конструкторы класса? Когда вызываются деструкторы? Напишите код конструктора для класса банковского счета, описанного в вопросе

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

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

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

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

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


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

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