Презентация ООП 2. Класс и Объект онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему ООП 2. Класс и Объект абсолютно бесплатно. Урок-презентация на эту тему содержит всего 32 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    32 слайда
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    459.50 kB
  • Просмотров:
    56
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

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

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

№3 слайд
Oбъект объединяет в себе как
Содержание слайда: Oбъект объединяет в себе как описывающие его данные (свойства), так и средства обработки этих данных (методы). Если объект — это “существительное”, свойства объекта — “прилагательные”, методы — “глаголы”.

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

№5 слайд
Имя класса с этого момента
Содержание слайда: Имя_класса с этого момента становится новым именем типа данных, которое используется для объявления объектов класса. Члены класса - это переменные состояния и методы этого класса, иными словами членами класса могут быть как переменные, так и функции. Функции и переменные, объявленные внутри объявления класса, становятся членами этого класса. Функции-члены класса будем называть методами этого класса. По умолчанию, все функции и переменные, объявленные в классе, становятся закрытыми (private) . Т.е. они доступны только из других членов этого класса. Для объявления открытых членов класса используется ключевое слово public. Все функции-методы и переменные, объявленные после слова public, доступны и для других членов класса, и для любой другой части программы, в которой содержится класс. В структурах по умолчанию все члены являются отрытыми.

№6 слайд
Данные примеры аналогичны
Содержание слайда: Данные примеры аналогичны: struct _3d {  double mod ();  double projection (_3d r); private:  double x, y, z; };

№7 слайд
Для определения метода -
Содержание слайда: Для определения метода - члена класса, нужно связать имя класса, частью которого является метод, с именем класса. Это достигается путем написания имени функции вслед за именем класса с двумя двоеточиями. Два двоеточия называют операцией расширения области видимости. double _3d::mod () {  return sqrt (x*x + y*y +z*z); } double _3d::projection (_3d r) {  return (x*r.x + y*r.y + z*r.z) / mod(); } ... main() {  _3d a, b;  double dPro, dMod;  dMod = a.mod();  dPro = b.projection(a); }

№8 слайд
Инкапсуляция encapsulation
Содержание слайда: Инкапсуляция (encapsulation) объединение производного типа данных с набором функций, используемых при работе с этим типом данных, в единый класс. Функции, включенные в класс, называют методами класса Данные – элементами или полями класса, Конкретные представители класса – объекты, экземпляры. Класс (объект) - это то, что поддерживает инкапсуляцию Инкапсуляция позволяет сделать класс «самодостаточным» для решения конкретной задачи. Класс всегда несет в себе некоторую функциональность. Это мощное средство обмена готовыми к работе программными заготовками

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

№10 слайд
Перегружаемые операторы
Содержание слайда: Перегружаемые операторы struct _3d {  double x, y, z; // координаты  _3d operator + (_3d); }; _3d _3d::operator + (_3d b) {  _3d c;  c.x = x + b.x;  c.y = y + b.y;  c.z = z + b.z;  return c; }

№11 слайд
Ограничения на замещение
Содержание слайда: Ограничения на замещение операторов по сравнению с замещением функций: оператор должен уже существовать в языке (нельзя добавлять совершенно новые, выдуманные вами операторы); нельзя переопределять действия встроенных в С++ операторов при работе со встроенными типами данных; так, нельзя изменить способ работы оператора "+" при сложении целых чисел; запрещено замещать операторы ".", ".*", "?:", "::" и символы препроцессора "#".

№12 слайд
Встраиваемые функции inline d
Содержание слайда: Встраиваемые функции inline _3d _3d::operator + (_3d b) {  _3d c;  c.x = x + b.x;  c.y = y + b.y;  c.z = z + b.z;  return c; }

№13 слайд
Используется для простых и
Содержание слайда: Используется для простых и коротких методов, которые в дальнейшем не предполагается изменять. struct _3d {  double x, y, z;  double mod () {return sqrt (x*x + y*y +z*z);}  double projection (_3d r) {return (x*r.x + y*r.y + z*r.z) / mod();}  _3d operator + (_3d b); };

№14 слайд
С точки зрения ООП такой
Содержание слайда: С точки зрения ООП такой стиль программирования должен быть признан ошибочным: _3d vectorA; double m; vectorA.x = 17.56; vectorA.y = 35.12; vectorA.z = 1.0; m = vectorA.mod();

№15 слайд
class d double x, y, z public
Содержание слайда: class _3d {   double x, y, z; public:  double mod () {return sqrt (x*x + y*y +z*z);}  double projection (_3d r) {return (x*r.x + y*r.y + z*r.z) / mod();}  void set (double newX, double newY, double newZ)  {   x = newX; y = newY; z = newZ;  }  _3d operator + (_3d b); };

№16 слайд
Конструкторы и деструкторы С
Содержание слайда: Конструкторы и деструкторы С++ дает возможность создать метод, который будет автоматически вызываться для инициализации объекта данного типа при его создании. Такой метод называется конструктором. Конструктор определяет, как будет создаваться новый объект, когда это необходимо, может распределить под него память и инициализировать ее. Он может включать в себя код для распределения памяти, присваивание значений элементам, преобразование из одного типа в другой и многое полезное. Конструкторы в языке С++ имеют имена, совпадающие с именем класса. Конструктор может быть определен пользователем, или компилятор сам сгенерирует конструктор по умолчанию. Конструктор может вызываться явно, или неявно. Компилятор сам автоматически вызывает соответствующий конструктор там, где Вы определяете новый объект класса. Конструктор не возвращает никакое значение, и при описании конструктора не используется ключевое слово void. Функцией, обратной конструктору, является деструктор. Эта функция обычно вызывается при удалении объекта. Например, если при создании объекта для него динамически выделялась память, то при удалении объекта ее нужно освободить. Локальные объекты удаляются тогда, когда они выходят из области видимости. Глобальные объекты удаляются при завершении программы. В языке С++ деструкторы имеют имена: "~имя_класса". Как и конструктор, деструктор не возвращает никакое значение, но в отличие от конструктора не может быть вызван явно. Конструктор и деструктор не могут быть описаны в закрытой части класса.

№17 слайд
class d double x, y, z public
Содержание слайда: class _3d {  double x, y, z; public:  _3d();  ~_3d()  {   cout << 'Работа деструктора _3d \n';  }  double mod () {return sqrt (x*x + y*y +z*z);}  double projection (_3d r) {return (x*r.x + y*r.y + z*r.z) / mod();}  void set (double newX, double newY, double newZ)  {   x = newX; y = newY; z = newZ;  }  }; _3d::_3d() // конструктор класса _3d {  x=y=z=0;  cout << 'Работа конструктора _3d \n'; }

№18 слайд
Конструкторы с параметрами и
Содержание слайда: Конструкторы с параметрами и перегрузка конструкторов class _3d {  double x, y, z; public:  _3d ();  _3d (double initX, double initY, double initZ);  ... }; _3d::_3d(double initX, double initY, double initZ) //конструктор класса _3d с параметрами {  x = initX;  y = initY;  z = initZ;  cout << 'Работа конструктора _3d \n'; }

№19 слайд
Присваивание объектов class
Содержание слайда: Присваивание объектов class ClassName1 {  int a, b; public:  void set (int ia, int ib) {a=ia; b=ib;} }; class ClassName2 {  int a, b; public:  void set (int ia, int ib) {a=ia; b=ib;} };

№20 слайд
class Pair int a, b public
Содержание слайда: class Pair {  int a, *b; public:  void set (int ia, int ib) {a=ia; *b=ib;}  int getb (){return *b;}  int geta (){return a;} }; main() {  Pair c1,c2;  c1.set(10,11);  c2 = c1;  c1.set(100,111);  cout << 'с2.b = '<< c2.getb(); }

№21 слайд
Перегруженный оператор
Содержание слайда: Перегруженный оператор присваивания class _3d {  double x, y, z; public:  _3d ();  _3d (double initX, double initY, double initZ);  double mod () {return sqrt (x*x + y*y +z*z);}  double projection (_3d r) {return (x*r.x + y*r.y + z*r.z) / mod();}  _3d operator + (_3d b);  _3d operator = (_3d b); }; _3d _3d::operator = (_3d b) { x = b.x; y = b.y; z = b.z; return *this; }

№22 слайд
Передача в функции и
Содержание слайда: Передача в функции и возвращение объекта class ClassName { public:  ClassName ()  {   cout << 'Работа конструктора \n';  }  ~ClassName ()  {   cout << 'Работа деструктора \n';  } }; void f (ClassName o) {  cout << 'Работа функции f \n'; } main() {  ClassName c1;  f (c1); }

№23 слайд
class ClassName public
Содержание слайда: class ClassName { public:  ClassName ()  {   cout << 'Работа конструктора \n';  }  ~ClassName ()  {   cout << 'Работа деструктора \n';  } }; ClassName f() {  ClassName obj;  cout << 'Работа функции f \n';  return obj; } main() {  ClassName c1;  c1 = f(); }

№24 слайд
Конструктор копирования
Содержание слайда: Конструктор копирования Позволяет точно определить порядок создания копии объекта и имеет следующую форму: имя_класса (const имя_класса & obj) {  ... // тело конструктора } Здесь obj - это ссылка на объект или адрес объекта. Замечание: конструктор копирования не влияет на операцию присваивания.

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

№26 слайд
Класс, который наследуется,
Содержание слайда: Класс, который наследуется, называется базовым классом. Наследующий класс называют производным классом. Новый класс строится на базе уже существующего с помощью конструкции следующего вида: class Parent {....}; class Child : [модификатор наследования] Parent {....};

№27 слайд
Модификатор наследования
Содержание слайда: Модификатор наследования

№28 слайд
Конструкторы и деструкторы
Содержание слайда: Конструкторы и деструкторы при наследовании Если и у базового и у производного классов есть конструкторы и деструкторы, то конструкторы выполняются в порядке наследования, а деструкторы - в обратном порядке. Т.е. если А базовый класс, В - производный из А, а С - производный из В (А-В-С), то при создании объекта класса С вызов конструкторов будет иметь следующий порядок: конструктор А - конструктор В - конструктор С. Вызов деструкторов при разрушении этого объекта произойдет в обратном порядке: деструктор С - деструктор В - деструктор А.

№29 слайд
class BaseClass public
Содержание слайда: class BaseClass { public:  BaseClass() {cout << ' Работа конструктора базового класса \n';}  ~BaseClass() {cout << ' Работа деструктора базового класса \n';} }; class DerivedClass: public BaseClass { public:  DerivedClass() {cout << ' Работа конструктора производного класса \n';}  ~DerivedClass() {cout << ' Работа деструктора производного класса \n';} }; main() {  DerivedClass obj; }

№30 слайд
Расширенная запись
Содержание слайда: Расширенная запись конструктора производного класса конструктор_производного_класса (список формальных параметров)  : конструктор_базового_класса (список фактических параметров) {  ... // тело конструктора производного класса }

№31 слайд
class BaseClass int i public
Содержание слайда: class BaseClass {  int i; public:  BaseClass (int ii) {i=ii;}  ~BaseClass() {cout << ' Работа деструктора базового класса \n';} }; class DerivedClass: public BaseClass {  int n; public:  DerivedClass (int nn, int m): BaseClass (m) {n=nn;}  ~DerivedClass() {cout << ' Работа деструктора производного класса \n';} }; main() {  DerivedClass obj(2,3); }

№32 слайд
Допускается также, что
Содержание слайда: Допускается также, что конструктор базового класса может иметь больше параметров, чем конструктор производного класса. class BaseClass {  int j, i; public:  BaseClass (int jj, int ii) {j=jj; i=ii;}  ~BaseClass() {cout << ' Работа деструктора базового класса \n';} }; class DerivedClass: public BaseClass {  int n; public:  DerivedClass (int nn);  ~DerivedClass() {cout << ' Работа деструктора производного класса \n';} }; DerivedClass :: DerivedClass (int nn): BaseClass (nn/2, nn%2) { n=nn; } main() {  DerivedClass obj(15); }

Скачать все slide презентации ООП 2. Класс и Объект одним архивом: