Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

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

Содержание

СодержаниеЭтапы развития программированияПрограммная инженерияФундаментальные понятия ООПЭтапы разработки программ с использованием ООПОсновополагающие концепции ООПИнкапсуляцияНаследованиеПолиморфизмОбъектыАнатомия классаУправление доступом к элементам классаОбъявление класса в программе. Пример1. «Класс TPerson»Контрольные вопросыМини-тестСписок литературы
Основы  объектно-ориентированного программированияВведение2008 гЛекция 1 СодержаниеЭтапы развития программированияПрограммная инженерияФундаментальные понятия ООПЭтапы разработки программ с использованием ООПОсновополагающие концепции Этапы развития программированияТехнология программирования – это система методов, способов и приемов обработки Предпосылки и историяПервый кризис программированияПовторное использование кодаМодульное программированиеРост сложности программСтруктурное программированиеМодификация программОбъектно-ориентированное программирование Продолжение кризиса программирования Повторное использование кодаПроблемаДублирование фрагментов кодаМодульное программированиеВыделение фрагментов в модулиПовторное использование модулейСоздание библиотек модулей Рост сложности программПроблемаСложные программные комплексыОбъем кода, к-во связей, к-во разработчиков, к-во пользователейЖизненный Модификация программПроблемаизменения в проекте и программе без изменения ранее написанного кодаОбъектно-ориентированное программированиеКласс Некоторые итогиГлавная цель программной инженерии - сокращение стоимости ПОСформировались основные принципы и Продолжение кризисаКризис программирования принимает хронические формы: США тратит более $200 млрд. на ОпределенияПрограммная инженерия – этоустановление и использование обоснованных инженерных принципов (методов) для экономного Абстрактные и реальные объектыАбстрактный объект это описание реального объекта минус подробностиПример 1:Абстрактные Почему объекты?Фокусирование на объектах упрощает для нас понимание сложных вещей.Уделяем внимание лишь Объекты в деловом миреБизнес процесс: Заказ товара.Объекты: Форма заказа Список товаровТоварная накладнаяОрдер КонцепцияКласс и ОбъектКласс - принципиально новый тип данных. Класс представляет собой множество КонцепцияОбъект является представителем (экземпляром) какого-либо класса. Объект обладает состоянием поведениемидентичностью. Состояние объекта Класс простое объяснениеКласс – это шаблон который определяет атрибуты и методы реального Этапы разработки программ с использованием ООПООП представляет собой систематизированный подход к алгоритмической Этапы разработки программ с использованием ООПАбстрагированиеВыделение абстракций. Это - анализ предметной области, Этапы разработки программ с использованием ООПИнкапсуляцияТипизация объектов и синтез абстрактных типов данных. Парадигмы ООП: инкапсуляциянаследование полиморфизм Инкапсуляция (encapsulation)- это объединение производного типа данных с набором функций, используемых при Инкапсуляция и ограничение доступа к даннымИнкапсуляция предполагает возможность ограничения доступа к данным Инкапсуляция Управление доступомКлючи доступа		private	- элементы данных могут использоваться только Наследование (inheritance)- это возможность определять новые классы посредством добавления полей, свойств и Полиморфизм (polymorphism) Полиморфизм (polymorphism) Это возможность заменить в классе потомке метод класса родителя, сохранив Описание класса в Delphitype   < имя класса > = class(< Пример описания классаTControl = class(TComponent) 	private		FOnDblClick: TNotifyEvent; 		FOnHouseDown: TMouseEvent; 		FOnHouseHove: TMouseMoveEvent;	protected		property OnDblClick: Пример описания классаtype	TStudent = class		FAge : integer;		function GetAge : integer;		procedure SetAge(Value : Пример 1. Объявление класса в программе. Постановка задачи Пусть необходимо создать класс, Пример 1. Объявление класса в программе. Программная реализация#include #include //описание структуры классаclass Пример 1. Объявление класса в программе. Реализация методов класса//реализация методов класса char* Итоги Контрольные вопросыПеречислите основные этапы развития технологии программирования.Определите понятие и назначение классаОпределите вопрос 11. Что такое класс?Это модуль, сохраненный в файлеЭто функцияЭто библиотекаЭто тип данныхЭто специальная программа вопрос 2  2. Что такое методы класса?Это инкапсулированные в классе данныеЭто вопрос 3  2. Что такое полиморфизм?Это переключательЭто спец.функция для работы с
Слайды презентации

Слайд 2 Содержание
Этапы развития программирования
Программная инженерия
Фундаментальные понятия ООП
Этапы разработки программ

СодержаниеЭтапы развития программированияПрограммная инженерияФундаментальные понятия ООПЭтапы разработки программ с использованием ООПОсновополагающие

с использованием ООП
Основополагающие концепции ООП
Инкапсуляция
Наследование
Полиморфизм
Объекты
Анатомия класса
Управление доступом к элементам

класса
Объявление класса в программе. Пример1. «Класс TPerson»
Контрольные вопросы
Мини-тест
Список литературы

Слайд 3 Этапы развития программирования
Технология программирования – это система методов,

Этапы развития программированияТехнология программирования – это система методов, способов и приемов

способов и приемов обработки и выдачи информации.

Написание программ в

машинных кодах
Появление языков низкого уровня
Языки высокого уровня. Технология нисходящего структурного программирования
Появление ООП


Слайд 4 Предпосылки и история
Первый кризис программирования
Повторное использование кода
Модульное программирование
Рост

Предпосылки и историяПервый кризис программированияПовторное использование кодаМодульное программированиеРост сложности программСтруктурное программированиеМодификация программОбъектно-ориентированное программирование Продолжение кризиса программирования

сложности программ
Структурное программирование
Модификация программ
Объектно-ориентированное программирование
Продолжение кризиса программирования


Слайд 5 Повторное использование кода
Проблема
Дублирование фрагментов кода
Модульное программирование
Выделение фрагментов в

Повторное использование кодаПроблемаДублирование фрагментов кодаМодульное программированиеВыделение фрагментов в модулиПовторное использование модулейСоздание библиотек модулей

модули
Повторное использование модулей
Создание библиотек модулей


Слайд 6 Рост сложности программ
Проблема
Сложные программные комплексы
Объем кода, к-во связей,

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

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

программирование
«Правильное» проектирование и кодирование
Основные принципы:
Нисходящее проектирование
Применение специальных языков проектирования
Дисциплина проектирования и разработки:
планирование и документирование проекта
поддержка соответствие кода проектной документации
Структурное кодирование (линейный блок, If-then-else, цикл)

Слайд 7 Модификация программ
Проблема
изменения в проекте и программе без изменения

Модификация программПроблемаизменения в проекте и программе без изменения ранее написанного кодаОбъектно-ориентированное

ранее написанного кода
Объектно-ориентированное программирование
Класс – модуль со свойствами, поведением,

обязанностями
Парадигмы ООП:
Инкапсуляция и сокрытие деталей
Наследование
Полиморфизм

Отдел 1

Отдел 2

Отдел 3

Зарплата

Отдел 1

Отдел 2

Отдел 3

Зарплата

Зарплата 1


Слайд 8 Некоторые итоги
Главная цель программной инженерии - сокращение стоимости

Некоторые итогиГлавная цель программной инженерии - сокращение стоимости ПОСформировались основные принципы

ПО
Сформировались основные принципы и методы проектирования ПО:
Жизненный цикл ПО
Модульное

программирование
Структурное проектирование и программирование
Объектно-ориентированное проектирование и программирование

Слайд 9 Продолжение кризиса
Кризис программирования принимает хронические формы:
США тратит

Продолжение кризисаКризис программирования принимает хронические формы: США тратит более $200 млрд.

более $200 млрд. на более чем 170 тыс. проектов
потери

от недополученного эффекта измеряются триллионами.
Успешные проекты не часты (30000 проектов)

Источник: The Standish Group International, Inc., Extreme Chaos, 2000
http://www1.standishgroup.com//sample_research/PDFpages/extreme_chaos.pdf


Слайд 10 Определения
Программная инженерия – это

установление и использование обоснованных инженерных

ОпределенияПрограммная инженерия – этоустановление и использование обоснованных инженерных принципов (методов) для

принципов (методов) для экономного получения ПО, которое надежно и

работает на реальных машинах. [Bauer 1972].
та форма инженерии, которая применяет принципы информатики (computer science) и математики для рентабельного решения проблем ПО. [CMU/SEI-90-TR-003]
применение систематического, дисциплинированного, измеряемого подхода к разработке, использованию и сопровождению ПО [IEEE 1990].
дисциплина, целью которой является создание качественного ПО, которое завершается вовремя, не превышает выделенных бюджетных средств и удовлетворяет выдвигаемым требованиям [Schach, 99]

Слайд 11 Абстрактные и реальные объекты
Абстрактный объект это описание реального

Абстрактные и реальные объектыАбстрактный объект это описание реального объекта минус подробностиПример

объекта минус подробности
Пример 1:
Абстрактные человек-это описание человека, которое содержит

атрибуты и варианты поведения:
Имя
Фамилия
Рост
Вес
Реальный человек определяет значения атрибутов:
Майкл
Джексон
180 см
80 кг

Пример 2: формочки для печенья


Слайд 12 Почему объекты?
Фокусирование на объектах упрощает для нас понимание

Почему объекты?Фокусирование на объектах упрощает для нас понимание сложных вещей.Уделяем внимание

сложных вещей.
Уделяем внимание лишь важным аспектам
Пример : преподаватель -

студент

Слайд 13 Объекты в деловом мире
Бизнес процесс: Заказ товара.
Объекты:
Форма

Объекты в деловом миреБизнес процесс: Заказ товара.Объекты: Форма заказа Список товаровТоварная

заказа
Список товаров
Товарная накладная
Ордер на отгрузку
Метка отгрузки
Поведение:
Ввод информации
Изменение информации
Удаление

информации
Отображение формы
Обработка заказа
Отмена заказа

Слайд 14 Концепция
Класс и Объект
Класс - принципиально новый тип данных.

КонцепцияКласс и ОбъектКласс - принципиально новый тип данных. Класс представляет собой


Класс представляет собой множество объектов
имеющих общую структуру
обладающих одинаковым

поведением.
Класс является дальнейшим развитием типа структура (запись)



Слайд 15 Концепция
Объект является представителем (экземпляром) какого-либо класса.
Объект обладает

КонцепцияОбъект является представителем (экземпляром) какого-либо класса. Объект обладает состоянием поведениемидентичностью. Состояние


состоянием
поведением
идентичностью.
Состояние объекта характеризуется
набором его свойств (атрибутов)


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

Слайд 16 Класс простое объяснение
Класс – это шаблон который определяет атрибуты

Класс простое объяснениеКласс – это шаблон который определяет атрибуты и методы

и методы реального мира.
Пример: форма для печенья в виде

буквы «А» - это не буква А, она лишь определяет , как буква А выглядит.
Если вам необходим объект, представляемый классом, создаете экземпляр.
Каждый экземпляр содержит те же самые атрибуты и методы, которые определены в классе. У каждого экземпляра своя копия.
Метод – поведение объекта. (опять про печенье, но в форме собаки)

Слайд 17 Этапы разработки программ с использованием ООП
ООП представляет собой

Этапы разработки программ с использованием ООПООП представляет собой систематизированный подход к

систематизированный подход к алгоритмической формализации сложных предметных областей.
ООП

предполагает этапы разработки программ:

Первый этап: абстрагирование
Второй этап: инкапсуляция
Третий этап: модульность
Четвертый этап: иерархия

Слайд 18 Этапы разработки программ с использованием ООП
Абстрагирование
Выделение абстракций. Это

Этапы разработки программ с использованием ООПАбстрагированиеВыделение абстракций. Это - анализ предметной

- анализ предметной области, для которой составляется программа, с

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

Различие:
Процедурное программирование нацелено на моделирование действий, выполняемых компьютером.

ООП нацелено на моделирование предметной области решаемой задачи.

Слайд 19 Этапы разработки программ с использованием ООП
Инкапсуляция
Типизация объектов и

Этапы разработки программ с использованием ООПИнкапсуляцияТипизация объектов и синтез абстрактных типов

синтез абстрактных типов данных. Определение новых типов данных и

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

Слайд 20 Парадигмы ООП:
инкапсуляция
наследование
полиморфизм

Парадигмы ООП: инкапсуляциянаследование полиморфизм

Слайд 21 Инкапсуляция (encapsulation)
- это объединение производного типа данных с

Инкапсуляция (encapsulation)- это объединение производного типа данных с набором функций, используемых

набором функций, используемых при работе с этим типом данных,

в единый класс.

Функции, включенные в класс, называют методами класса
Данные – элементами или полями класса,
Конкретные представители класса – объекты, экземпляры.

Класс (объект) - это то, что поддерживает инкапсуляцию

Инкапсуляция позволяет сделать класс «самодостаточным» для решения конкретной задачи.
Класс всегда несет в себе некоторую функциональность.
Это мощное средство обмена готовыми к работе программными заготовками

Слайд 22 Инкапсуляция и ограничение доступа к данным
Инкапсуляция предполагает возможность

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

ограничения доступа к данным (полям) класса.
Это позволяет
упростить

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

Слайд 23 Инкапсуляция

Инкапсуляция

Слайд 24 Управление доступом


Ключи доступа
private - элементы данных могут использоваться только

Управление доступомКлючи доступа		private	- элементы данных могут использоваться только

функциями-методами класса, к которому принадлежат эти элементы данных
public - элементы данных могут использоваться любыми функциями программы
protected - элементы данных могут использоваться функциями-методами того же класса, к которому принадлежат эти элементы данных, а также функциями- методами производных классов (классов-потомков)
По умолчанию ключ доступа private. Т.е. если ключи доступа не указаны, то все элементы класса являются скрытыми (недоступными).
Попытка обратиться в программе к скрытым данным или методам вызывает сообщение:
<имя элемента класса> is not accessible

Слайд 25 Наследование (inheritance)
- это возможность определять новые классы посредством

Наследование (inheritance)- это возможность определять новые классы посредством добавления полей, свойств

добавления полей, свойств и методов к уже существующим классам.



Такой механизм получения новых классов называется порождением.
При этом новый, порожденный, класс (потомок) наследует все поля, методы и свойства своего базового, родительского класса.
Наследование поддерживает концепцию иерархии классов (hierarchical classification).
Применение иерархии классов делает управляемыми большие потоки информации.
Наследование обеспечивает поэтапное создание сложных классов и разработку собственных библиотек классов



Слайд 26 Полиморфизм (polymorphism)

Полиморфизм (polymorphism)

Слайд 27 Полиморфизм (polymorphism)
Это возможность заменить в классе потомке

Полиморфизм (polymorphism) Это возможность заменить в классе потомке метод класса родителя,

метод класса родителя, сохранив при этом имя метода.
Это

свойство классов решать схожие по смыслу проблемы разными способами.
Цель полиморфизма - использование одного имени для задания общих для класса действий.

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

Слайд 28 Описание класса в Delphi
type
< имя

Описание класса в Delphitype  < имя класса > = class(<

класса > = class(< имя класса-родителя >)

public
< описание общедоступных элементов >
published
< описание элементов, доступных в Инспекторе Объектов >
protected
< описание элементов, доступных в классах-потомках >
private
< описание элементов, доступных только в модуле >
end;

Слайд 29 Пример описания класса
TControl = class(TComponent)
private
FOnDblClick: TNotifyEvent;

Пример описания классаTControl = class(TComponent) 	private		FOnDblClick: TNotifyEvent; 		FOnHouseDown: TMouseEvent; 		FOnHouseHove: TMouseMoveEvent;	protected		property


FOnHouseDown: TMouseEvent;
FOnHouseHove: TMouseMoveEvent;
protected
property OnDblClick: TNotifyEvent read FOnDblClick write

FOnDblClick;
property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;
property OnMouseMove: TMouseMoveEvent read FOnMouseMove write FOnMouseMove;
end;

Слайд 30 Пример описания класса
type
TStudent = class
FAge : integer;
function GetAge

Пример описания классаtype	TStudent = class		FAge : integer;		function GetAge : integer;		procedure SetAge(Value

: integer;
procedure SetAge(Value : integer);
property Age : integer read

GetAge write SetAge;
end;

Слайд 31 Пример 1. Объявление класса в программе. Постановка задачи

Пример 1. Объявление класса в программе. Постановка задачи Пусть необходимо создать


Пусть необходимо создать класс, описывающий некоторые характеристики человека.
Будем

хранить о человеке следующие данные:
фио, рост в cм, вес в кг.
Для работы с этими данными предусмотрим следующие методы:
методы инициализации полей (названия таких методов имеют префикс Set); назначение этих методов - присваивать новые значения полям класса; новые значения полей будут предаваться через параметры функций-методов;
метод, позволяющий получить информацию о текущем состоянии объекта (значении всех его полей).


Слайд 32 Пример 1. Объявление класса в программе. Программная реализация
#include

Пример 1. Объявление класса в программе. Программная реализация#include #include //описание структуры


#include
//описание структуры класса
class TPerson
{
private:
char

fname[15];
int frost;
float fwes;
public:
char * Show() ;
void SetName (char* value);
void SetRost (int value);
void SetWes (float value);
} ;

Слайд 33 Пример 1. Объявление класса в программе. Реализация методов

Пример 1. Объявление класса в программе. Реализация методов класса//реализация методов класса

класса
//реализация методов класса
char* TPerson::Show()
{static char S[100];

sprintf (S,"Это %s; его рост - %d см, вес - %3.2f кг", fname, frost, fwes);
return S; }
void TPerson::SetName(char* value)
{ strcpy(fname,value);
return; }
void TPerson::SetRost(int value)
{ frost=value;
return; }
void TPerson::SetWes(float value)
{ fwes=value;
return; }


Слайд 34 Итоги Контрольные вопросы
Перечислите основные этапы развития технологии программирования.
Определите понятие

Итоги Контрольные вопросыПеречислите основные этапы развития технологии программирования.Определите понятие и назначение

и назначение класса
Определите понятие и характеристики объекта
Перечислите и охарактеризуйте

этапы разработки программ с использованием ООП
Назовите и охарактеризуйте основные концепции ООП
Из каких элементов состоит класс?
Как ограничить доступ к составляющим класса?


Слайд 35 вопрос 1
1. Что такое класс?
Это модуль, сохраненный в

вопрос 11. Что такое класс?Это модуль, сохраненный в файлеЭто функцияЭто библиотекаЭто тип данныхЭто специальная программа

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


Слайд 36 вопрос 2
2. Что такое методы класса?

Это

вопрос 2 2. Что такое методы класса?Это инкапсулированные в классе данныеЭто

инкапсулированные в классе данные
Это функции для работы с полями

класса
Это специальные функции в составе ОС Windows


Слайд 37 вопрос 3
2. Что такое полиморфизм?

Это переключатель
Это

вопрос 3 2. Что такое полиморфизм?Это переключательЭто спец.функция для работы с

спец.функция для работы с полями класса
Это одно имя –

разный функционал


  • Имя файла: osnovy-obektno-orientirovannogo-programmirovaniya.pptx
  • Количество просмотров: 116
  • Количество скачиваний: 0