🗊Презентация Классы и объекты

Категория: Образование
Нажмите для полного просмотра!
Классы и объекты, слайд №1Классы и объекты, слайд №2Классы и объекты, слайд №3Классы и объекты, слайд №4Классы и объекты, слайд №5Классы и объекты, слайд №6Классы и объекты, слайд №7Классы и объекты, слайд №8Классы и объекты, слайд №9Классы и объекты, слайд №10Классы и объекты, слайд №11Классы и объекты, слайд №12Классы и объекты, слайд №13Классы и объекты, слайд №14Классы и объекты, слайд №15Классы и объекты, слайд №16

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

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


Слайд 1





Основы ООП
Классы и объекты
Описание слайда:
Основы ООП Классы и объекты

Слайд 2





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

Слайд 3





Классы и объекты
В свою очередь объект - это экземпляр класса. Обычно классы разрабатывают таким образом, чтобы объекты классов соответствовали некоторым объектам предметной области.
Объектно-ориентированная парадигма (распространяется с 90-х годов ХХ века).
В основе структурного проектирования лежит идея последовательной декомпозиции предметной области и целенаправленное структурирование кода. Типичными методами структурного проектирования являются:
нисходящее проектирование (сверху вниз, HIPO-технология);
модульное программирование, в том числе снизу вверх;
Информационное моделирование предметной области – «код обслуживает данные», СУБД.
ООП - современная технология создания надежного ПО при умеренной его стоимости. ООП есть структурное программирование, доведенное до логического конца. Преимущества ООП проявляются в крупных проектах.
Описание слайда:
Классы и объекты В свою очередь объект - это экземпляр класса. Обычно классы разрабатывают таким образом, чтобы объекты классов соответствовали некоторым объектам предметной области. Объектно-ориентированная парадигма (распространяется с 90-х годов ХХ века). В основе структурного проектирования лежит идея последовательной декомпозиции предметной области и целенаправленное структурирование кода. Типичными методами структурного проектирования являются: нисходящее проектирование (сверху вниз, HIPO-технология); модульное программирование, в том числе снизу вверх; Информационное моделирование предметной области – «код обслуживает данные», СУБД. ООП - современная технология создания надежного ПО при умеренной его стоимости. ООП есть структурное программирование, доведенное до логического конца. Преимущества ООП проявляются в крупных проектах.

Слайд 4





Классы и объекты
ООП основано на четырех базовых понятиях (идеях, принципах): абстракции, инкапсуляции, наследовании и полиморфизме. Рассмотрим их.
Абстракция.
Люди пользуются абстракциями в повседневной практике и в языке. 
В интеллектуальной деятельности человечество для своего удобства использует такие приёмы, как классификация, обобщение и абстрагирование (в философии – анализ и синтез). Рассмотрим простой пример из техники:
Компьютеру же требуется каждый раз до деталей расписывать, как устроен каждый новый объект. Это утомительно и не продуктивно. Компьютер «мыслит» всегда конкретно. Нельзя ли «научить» его «мыслить» абстрактными категориями? Это делается в ООП при помощи абстрактных классов объектов. 
Сначала это может показаться странным, но особенно полезны те классы, которые являются моделями абстрактных, а не реальных объектов. Идея абстракции – первая фундаментальная идея, лежащая в основе ООП.
Описание слайда:
Классы и объекты ООП основано на четырех базовых понятиях (идеях, принципах): абстракции, инкапсуляции, наследовании и полиморфизме. Рассмотрим их. Абстракция. Люди пользуются абстракциями в повседневной практике и в языке. В интеллектуальной деятельности человечество для своего удобства использует такие приёмы, как классификация, обобщение и абстрагирование (в философии – анализ и синтез). Рассмотрим простой пример из техники: Компьютеру же требуется каждый раз до деталей расписывать, как устроен каждый новый объект. Это утомительно и не продуктивно. Компьютер «мыслит» всегда конкретно. Нельзя ли «научить» его «мыслить» абстрактными категориями? Это делается в ООП при помощи абстрактных классов объектов. Сначала это может показаться странным, но особенно полезны те классы, которые являются моделями абстрактных, а не реальных объектов. Идея абстракции – первая фундаментальная идея, лежащая в основе ООП.

Слайд 5





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

Слайд 6





Классы и объекты
Наследование.
Абстрактные классы полезны тем, что из них можно порождать более конкретные производные классы. Это удобно, так как избавляет разработчика ПО от необходимости каждый раз повторяться в деталях.
Производные классы могут наследовать данные и методы от ранее определенных базовых классов. При этом возможно перекрытие и добавление новых методов и данных базовых классов. 
Возникает естественная иерархия (схема наследования) классов. Наверху схемы находятся максимально абстрактные классы, внизу – конкретные классы. 
Итак, наследованием называется процесс порождения одного класса от другого класса с сохранением и/или перекрытием свойств и методов класса-предка и добавлением, при необходимости, новых свойств и методов в классы-потомки. 
Набор классов, связанных отношением наследования, называют иерархией классов. 
Наследование отображает такое свойство реального мира, как иерархичность. 
Удобный набор абстракций позволяет с легкостью порождать конкретные практически полезные классы, а не создавать классы каждый раз заново. 
Этим достигается надежность и эффективность при проектировании ПО, ускоряется и удешевляется процесс разработка ПО. 
В качестве примера схемы наследования см. библиотеку классов MFC.
Описание слайда:
Классы и объекты Наследование. Абстрактные классы полезны тем, что из них можно порождать более конкретные производные классы. Это удобно, так как избавляет разработчика ПО от необходимости каждый раз повторяться в деталях. Производные классы могут наследовать данные и методы от ранее определенных базовых классов. При этом возможно перекрытие и добавление новых методов и данных базовых классов. Возникает естественная иерархия (схема наследования) классов. Наверху схемы находятся максимально абстрактные классы, внизу – конкретные классы. Итак, наследованием называется процесс порождения одного класса от другого класса с сохранением и/или перекрытием свойств и методов класса-предка и добавлением, при необходимости, новых свойств и методов в классы-потомки. Набор классов, связанных отношением наследования, называют иерархией классов. Наследование отображает такое свойство реального мира, как иерархичность. Удобный набор абстракций позволяет с легкостью порождать конкретные практически полезные классы, а не создавать классы каждый раз заново. Этим достигается надежность и эффективность при проектировании ПО, ускоряется и удешевляется процесс разработка ПО. В качестве примера схемы наследования см. библиотеку классов MFC.

Слайд 7





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

Слайд 8





Классы и объекты
Альтернативное определение ООП
По мнению Алана Кея, создателя языка Smalltalk, одного из основателей ООП,
объектно-ориентированный подход основан на следующих шести принципах: 
Всё является объектом.
Объекты взаимодействуют, посылая и получая сообщения. Сообщение - это запрос на выполнение действия, дополненный некоторым набором аргументов. В большинстве языков программирования «отправка сообщения» объекту - это просто вызов метода данного объекта. 
Каждый объект имеет независимую память, которая состоит из других объектов.
Каждый объект является представителем (экземпляром) некоторого класса. Класс задаёт общие свойства объектов (данные класса).
Класс задаёт поведение объекта (методы класса). Все объекты, которые являются экземплярами одного класса, могут выполнять заданные действия, т.е. обладают одинаковым поведением.
Классы организованы в древовидную структуру, называемую иерархией наследования. Данные и методы класса доступны любому другому классу, расположенному ниже в иерархическом дереве.
Описание слайда:
Классы и объекты Альтернативное определение ООП По мнению Алана Кея, создателя языка Smalltalk, одного из основателей ООП, объектно-ориентированный подход основан на следующих шести принципах: Всё является объектом. Объекты взаимодействуют, посылая и получая сообщения. Сообщение - это запрос на выполнение действия, дополненный некоторым набором аргументов. В большинстве языков программирования «отправка сообщения» объекту - это просто вызов метода данного объекта. Каждый объект имеет независимую память, которая состоит из других объектов. Каждый объект является представителем (экземпляром) некоторого класса. Класс задаёт общие свойства объектов (данные класса). Класс задаёт поведение объекта (методы класса). Все объекты, которые являются экземплярами одного класса, могут выполнять заданные действия, т.е. обладают одинаковым поведением. Классы организованы в древовидную структуру, называемую иерархией наследования. Данные и методы класса доступны любому другому классу, расположенному ниже в иерархическом дереве.

Слайд 9





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

Слайд 10





Классы и объекты
Объекты классов: статические, автоматические, динамические
Пусть имеется такое описание:
class  X  { 	// описан класс X ( это похоже на описание структуры)
public:		// доступ извне к элементам класса разрешен
	char *data;	// элемент данных класса X
	void f( void ); 	// функция-член класса X
};	
X a;		// описан a – объект класса X
static X v[10];	// описан v – статический массив объектов класса X
X *px = new X;	// описан px – указатель на объект класса X
Доступ извне описания класса к элементам данных и членам класса
осуществляется (если он разрешён) с помощью уточненных имен:
	X::data  - уточненное имя элемента данных data класса X
	X::f()     - уточненное имя функции-члена f() класса X
Если имеется объект a класса X и указатель px на объект класса X, тогда 
доступ извне класса осуществляется (если он разрешён) следующим образом:
	a.data   или   px->data	 - доступ к элементу данных извне класса
	a.f()      или   px->f()	 - вызов функции-члена извне класса
Описание слайда:
Классы и объекты Объекты классов: статические, автоматические, динамические Пусть имеется такое описание: class X { // описан класс X ( это похоже на описание структуры) public: // доступ извне к элементам класса разрешен char *data; // элемент данных класса X void f( void ); // функция-член класса X }; X a; // описан a – объект класса X static X v[10]; // описан v – статический массив объектов класса X X *px = new X; // описан px – указатель на объект класса X Доступ извне описания класса к элементам данных и членам класса осуществляется (если он разрешён) с помощью уточненных имен: X::data - уточненное имя элемента данных data класса X X::f() - уточненное имя функции-члена f() класса X Если имеется объект a класса X и указатель px на объект класса X, тогда доступ извне класса осуществляется (если он разрешён) следующим образом: a.data или px->data - доступ к элементу данных извне класса a.f() или px->f() - вызов функции-члена извне класса

Слайд 11





Классы и объекты
Доступ изнутри класса к элементам данных и функциям-членам класса
возможен по их простым именам. Кроме того, у любой функции-члена класса всегда имеется неявный аргумент с именем this. 
Неявный аргумент this есть указатель на тот объект класса, для которого эта функция-член вызывается. 
Например, пусть имеется объект a класса X. 
Тогда  this  &a, и внутри любой функции-члена класса возможны следующие корректные обращения:
           this -> data	- доступ к элементу данных из функции-члена класса
           this -> f()	- вызов функции-члена из другой функции-члена класса
Пример 1. Статические данные и методы классов
Описание слайда:
Классы и объекты Доступ изнутри класса к элементам данных и функциям-членам класса возможен по их простым именам. Кроме того, у любой функции-члена класса всегда имеется неявный аргумент с именем this. Неявный аргумент this есть указатель на тот объект класса, для которого эта функция-член вызывается. Например, пусть имеется объект a класса X. Тогда this  &a, и внутри любой функции-члена класса возможны следующие корректные обращения: this -> data - доступ к элементу данных из функции-члена класса this -> f() - вызов функции-члена из другой функции-члена класса Пример 1. Статические данные и методы классов

Слайд 12





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

Слайд 13





Классы и объекты
Управление доступом к элементам классов
Управление доступом к элементам классов по существу позволяет управлять степенью инкапсуляции в классе. Сокрытие данных и методов защищает объекты от несанкционированного доступа и от непреднамеренной порчи.
Рассмотрим значения следующих ключевых слов:
Private – элементы класса доступны функциям-членам этого класса и дружественным функциям. Private есть значение по умолчанию.
Protected – элементы класса доступны методам этого класса, методам производных от него классов и дружественным функциям.
Public – элементы класса доступны любым функциям текущего проекта.
Friend – открывает доступ к элементам класса для функций, не являющихся методами данного класса (т.е. объявляет дружественные функции), а также используется для объявления дружественных классов.
Описание слайда:
Классы и объекты Управление доступом к элементам классов Управление доступом к элементам классов по существу позволяет управлять степенью инкапсуляции в классе. Сокрытие данных и методов защищает объекты от несанкционированного доступа и от непреднамеренной порчи. Рассмотрим значения следующих ключевых слов: Private – элементы класса доступны функциям-членам этого класса и дружественным функциям. Private есть значение по умолчанию. Protected – элементы класса доступны методам этого класса, методам производных от него классов и дружественным функциям. Public – элементы класса доступны любым функциям текущего проекта. Friend – открывает доступ к элементам класса для функций, не являющихся методами данного класса (т.е. объявляет дружественные функции), а также используется для объявления дружественных классов.

Слайд 14





Классы и объекты
Каким образом регулируются права доступа к элементам классов при наследовании классов? Рассмотрим следующую синтаксическую конструкцию:
	class Derived : <модификатор-доступа> Base { …… };
Здесь Base – базовый класс (предок), а Derived – производный класс (потомок).
	
	Таблица определения прав доступа при наследовании
     	Base   		<модификатор-доступа>	Derived
	-------------------------------------------------------------------------------
	private			private		не доступны
	-------------------------------------------------------------------------------
	protected			private		private
	-------------------------------------------------------------------------------
	public			private		private
	-------------------------------------------------------------------------------
	private			public		не доступны
	-------------------------------------------------------------------------------
	protected		 	public		protected
	-------------------------------------------------------------------------------
	public			public		public
Описание слайда:
Классы и объекты Каким образом регулируются права доступа к элементам классов при наследовании классов? Рассмотрим следующую синтаксическую конструкцию: class Derived : <модификатор-доступа> Base { …… }; Здесь Base – базовый класс (предок), а Derived – производный класс (потомок). Таблица определения прав доступа при наследовании Base <модификатор-доступа> Derived ------------------------------------------------------------------------------- private private не доступны ------------------------------------------------------------------------------- protected private private ------------------------------------------------------------------------------- public private private ------------------------------------------------------------------------------- private public не доступны ------------------------------------------------------------------------------- protected public protected ------------------------------------------------------------------------------- public public public

Слайд 15





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

Слайд 16





Классы и объекты
Пример. Шаблон стека для указателей на объекты произвольных классов
Описание слайда:
Классы и объекты Пример. Шаблон стека для указателей на объекты произвольных классов



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