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

Нажмите для полного просмотра!
Объекто-ориентированное программирование, слайд №1 Объекто-ориентированное программирование, слайд №2 Объекто-ориентированное программирование, слайд №3 Объекто-ориентированное программирование, слайд №4 Объекто-ориентированное программирование, слайд №5 Объекто-ориентированное программирование, слайд №6 Объекто-ориентированное программирование, слайд №7 Объекто-ориентированное программирование, слайд №8 Объекто-ориентированное программирование, слайд №9 Объекто-ориентированное программирование, слайд №10 Объекто-ориентированное программирование, слайд №11 Объекто-ориентированное программирование, слайд №12 Объекто-ориентированное программирование, слайд №13 Объекто-ориентированное программирование, слайд №14 Объекто-ориентированное программирование, слайд №15 Объекто-ориентированное программирование, слайд №16 Объекто-ориентированное программирование, слайд №17 Объекто-ориентированное программирование, слайд №18 Объекто-ориентированное программирование, слайд №19 Объекто-ориентированное программирование, слайд №20 Объекто-ориентированное программирование, слайд №21 Объекто-ориентированное программирование, слайд №22 Объекто-ориентированное программирование, слайд №23 Объекто-ориентированное программирование, слайд №24 Объекто-ориентированное программирование, слайд №25 Объекто-ориентированное программирование, слайд №26 Объекто-ориентированное программирование, слайд №27 Объекто-ориентированное программирование, слайд №28 Объекто-ориентированное программирование, слайд №29 Объекто-ориентированное программирование, слайд №30 Объекто-ориентированное программирование, слайд №31 Объекто-ориентированное программирование, слайд №32 Объекто-ориентированное программирование, слайд №33 Объекто-ориентированное программирование, слайд №34 Объекто-ориентированное программирование, слайд №35 Объекто-ориентированное программирование, слайд №36 Объекто-ориентированное программирование, слайд №37 Объекто-ориентированное программирование, слайд №38 Объекто-ориентированное программирование, слайд №39 Объекто-ориентированное программирование, слайд №40 Объекто-ориентированное программирование, слайд №41 Объекто-ориентированное программирование, слайд №42

Содержание

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

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


Слайд 1


Введение
Описание слайда:
Введение

Слайд 2


Парадигмы программирования Структу́рное программи́рование Функциона́льное программи́рование Логи́ческое программи́рование Автома́тное...
Описание слайда:
Парадигмы программирования Структу́рное программи́рование Функциона́льное программи́рование Логи́ческое программи́рование Автома́тное программи́рование Объе́ктно-ориенти́рованное программи́рование Событи́йно-ориенти́рованное программи́рование Агентно-ориентированное программи́рование

Слайд 3


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

Слайд 4


Элементы объектной модели • Абстракция • Инкапсуляция • Модульность • Иерархия • Контроль типов • Параллелизм • Персистентность
Описание слайда:
Элементы объектной модели • Абстракция • Инкапсуляция • Модульность • Иерархия • Контроль типов • Параллелизм • Персистентность

Слайд 5


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

Слайд 6


Объекто-ориентированное программирование, слайд №6
Описание слайда:

Слайд 7


Класс - это множество объектов, имеющих общую структуру и общее поведение.
Описание слайда:
Класс - это множество объектов, имеющих общую структуру и общее поведение.

Слайд 8


Объекто-ориентированное программирование, слайд №8
Описание слайда:

Слайд 9


Ограничения доступа
Описание слайда:
Ограничения доступа

Слайд 10


Объекто-ориентированное программирование, слайд №10
Описание слайда:

Слайд 11


Основные свойства и правила использования конструкторов: Основные свойства и правила использования конструкторов: конструктор имеет то же имя, что и...
Описание слайда:
Основные свойства и правила использования конструкторов: Основные свойства и правила использования конструкторов: конструктор имеет то же имя, что и класс, в котором он объявляется; конструктор не возвращает значения (даже типа void); конструктор не наследуется в производных классах. конструктор может иметь параметры, заданные по умолчанию; конструктор - это функция, но его нельзя объявить с ключевым словом virtиal; невозможно получить в программе адрес конструктора; если конструктор не задан в программе, то он будет aвтоматически сгенерирован; конструктор вызывается автоматически только при описании объекта; объект, содержащий конструктор, нельзя включить в виде компонента в объединение; конструктор класса Х не может иметь параметр типа Х, может иметь параметр ссылку на объект типа Х, в этом случае он называется конструктором для копирования (сору constrиctor) класса Х.

Слайд 12


Основные свойства и правила использования деструкторов: Основные свойства и правила использования деструкторов: деструктор имеет то же самое имя, что...
Описание слайда:
Основные свойства и правила использования деструкторов: Основные свойства и правила использования деструкторов: деструктор имеет то же самое имя, что и класс, в котором он объявляется, с префиксом ~ (тильдой); деструктор не возвращает значения ; деструктор не наследуется в производных классах; производный класс может вызвать деструкторы для его базовых классов; деструктор не имеет параметров; класс может иметь только один деструктор; деструктор - это функция, и он может быть виртуальным; невозможно получить в программе адрес деструктор); если деструктор не задан в программе, то он будет автоматически сгенерирован компилятором; деструктор можно вызвать так же, как обычную функцию, например: date *my_day; my_day->date::~date(). деструктор вызывается автоматически при разрушении объекта.

Слайд 13


Области видимости для классов int x = 2; class Example { void f () {x = 0;} short x }; void f () {::x = 0;}
Описание слайда:
Области видимости для классов int x = 2; class Example { void f () {x = 0;} short x }; void f () {::x = 0;}

Слайд 14


Спецификатор памяти static class Example { public: static int x ; } p1, p2; int Example::x=67;
Описание слайда:
Спецификатор памяти static class Example { public: static int x ; } p1, p2; int Example::x=67;

Слайд 15


Спецификатор const class Stack { char s[MaxSize]; int top; public: Stack () {top = 0;} void Look_Top() const {cout
Описание слайда:
Спецификатор const class Stack { char s[MaxSize]; int top; public: Stack () {top = 0;} void Look_Top() const {cout

Слайд 16


Указатель this date today, my_day; today.out(); my_day.out(); cout
Описание слайда:
Указатель this date today, my_day; today.out(); my_day.out(); cout

Слайд 17


Организация списка Организация списка
Описание слайда:
Организация списка Организация списка

Слайд 18


void spisok::Look() void spisok::Look() { cout
Описание слайда:
void spisok::Look() void spisok::Look() { cout

Слайд 19


Основные свойства и правила использования указателя this: Основные свойства и правила использования указателя this: каждый новый объект имеет свой...
Описание слайда:
Основные свойства и правила использования указателя this: Основные свойства и правила использования указателя this: каждый новый объект имеет свой скрытый указатель this; this указывает на начало своего объекта в памяти; this не надо дополнительно объявлять; this передается как скрытый параметр во все нестатические член-функции своего объекта; this - это локальная переменная, которая недоступна за пределами объекта.

Слайд 20


Дружественные функции class rectangle {int color, x, y; }; class circle {int color, x, y, radius; pubIic: friend bool equal-color(circle с, rectangle...
Описание слайда:
Дружественные функции class rectangle {int color, x, y; }; class circle {int color, x, y, radius; pubIic: friend bool equal-color(circle с, rectangle r); }; bool equal-color (circle с, rectangle r) { if(c.color == r.color) return true; else return false; }

Слайд 21


Член-функция одного класса может быть объявлена со спецификатором friend для другого класса. Член-функция одного класса может быть объявлена со...
Описание слайда:
Член-функция одного класса может быть объявлена со спецификатором friend для другого класса. Член-функция одного класса может быть объявлена со спецификатором friend для другого класса. class Х { int function_of_X(…); }; class У { friend int Х:: function_of_X(…); }; class Z { friend class У; };

Слайд 22


class my_class2; class my_class2; class my_ class 1 { int а; friend void fun(my_class1&,my_class2&); pubIic: my_class1(int А) : а(А) {}; }; class...
Описание слайда:
class my_class2; class my_class2; class my_ class 1 { int а; friend void fun(my_class1&,my_class2&); pubIic: my_class1(int А) : а(А) {}; }; class my_class2 { int а; friend void fun(my_class1&,my_class2&); pubIic: my_class2(int А) : а(А) {}; }; void fun(my_class1& M1,my_class2& М2) { if (М1.а == М2.а) cout « "equal\n"; else cout « "not equal\n"; void main(void) { my_class1 mс1(100); my_class2 mc2( 100); fun(mc1,mc2);}

Слайд 23


class Х; class Х; class У { int а; void Y(int c): a(c){}; pubIic: void display(X* рХ); }; class Х { int а; void X(int C): a(C){}; pubIic: friend void...
Описание слайда:
class Х; class Х; class У { int а; void Y(int c): a(c){}; pubIic: void display(X* рХ); }; class Х { int а; void X(int C): a(C){}; pubIic: friend void Y::display(X*); }; void Y::display(X* рХ) { cout« pX->a « '\t' « а «endl; } void main(void) { Х my_X(100); У my_У(200); my_Y.display(&my_X); / / Результат: 100 200 }

Слайд 24


Основные свойства и правила использования спецификатора friend: friend функции не являются компонентами класса, но получают доступ ко всем его...
Описание слайда:
Основные свойства и правила использования спецификатора friend: friend функции не являются компонентами класса, но получают доступ ко всем его компонентам; если friend функции одного класса не являются компонентами другого класса, то они вызываются так же, как и обычные rлобальные функции (без операторов . и ->); если friend функции одного класса не являются компонентами другого класса, то они не имеют указателя this; friend функции не наследуются в производных классах; отношение friend не является транзитивным.

Слайд 25


Объявление и разрушение глобальных объектов: Объявление и разрушение глобальных объектов: class А { int i; pubIic: A(int I) : i(I) { cout «...
Описание слайда:
Объявление и разрушение глобальных объектов: Объявление и разрушение глобальных объектов: class А { int i; pubIic: A(int I) : i(I) { cout « "class А" « i « " constructor\n";} ~A() { cout « "class А" « i « "destructor\n"; } }; А а1(1),а2(2); void main(void) { getch(); } Результаты выполнения этой программы: class А 1 constructor class А2 constructor < здесь можно нажать любую клавишу> class А2 destructor class А 1 destructor

Слайд 26


Объявление и разрушение локальных объектов. Объявление и разрушение локальных объектов. class А { int i; pubIic: A(int I) : i(I) { cout « "class...
Описание слайда:
Объявление и разрушение локальных объектов. Объявление и разрушение локальных объектов. class А { int i; pubIic: A(int I) : i(I) { cout « "class А" « i « " constructor\n"; } ~A() { cout « "class А" « i « "destructor\n"; } }; void fuпction(void) { cout« "begin\n"; А а1(1),а2(2); cout «"end\n"; } void main(void) { cout« "before\n"; function(); cout « "after\n"; } } Результаты: before begin class А 1 constructor class А2 constructor end class А2 destructor class А 1 destructor after

Слайд 27


Создание объектов в динамически выделяемой памяти Создание объектов в динамически выделяемой памяти class А { int i; pubIic: A(int I) : i(I) { cout «...
Описание слайда:
Создание объектов в динамически выделяемой памяти Создание объектов в динамически выделяемой памяти class А { int i; pubIic: A(int I) : i(I) { cout « "class А" « i « " constructor\n"; } ~A () { cout « "class А" « i « "destructor\n"; } }; void main(void) { А *р1 == new А(1); А *р2 == new А(2); delete р1; delete р2; } Результаты : class А 1 constructor class А2 constructor class А 1 destructor class А2 destructor

Слайд 28


Объявление объектов в виде компонентов в друrих классах. Объявление объектов в виде компонентов в друrих классах. class а {int j; pubIic a(int J} :...
Описание слайда:
Объявление объектов в виде компонентов в друrих классах. Объявление объектов в виде компонентов в друrих классах. class а {int j; pubIic a(int J} : j(J} { cout « "class а" « j « " constructor\n"; } ~a() { cout « "class а" « j « "destructor\n"; } }; class b {int i; а а1; pubIic: b(int I,int J} : а1 (J},i(I) { cout « "class b" « i « "constructor\n"; } ~b() { cout « "class b" « i « "destructor\n"; } }; void main(void) { b b1(1, 1}; b b2(2,1);} } Результаты: class а1 constructor class b1 constructor class а1 constructor class b2 constructor class b2 destructor class а1 destructor class b1 destructor class а1 destructor

Слайд 29


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

Слайд 30


class employee class employee { char * name; // имя int income; // доход employee * next; // следующий служащий public: employee (char * n, int i);...
Описание слайда:
class employee class employee { char * name; // имя int income; // доход employee * next; // следующий служащий public: employee (char * n, int i); // конструктор void print() const; // вывод на экран }; employee::employee(char * n, int i) : name(n), income(i) { next = 0;} void employee::print() const { cout

Слайд 31


class manager : public employee class manager : public employee { int level; // уровень employee * group; // подчиненные public: manager(char *, int,...
Описание слайда:
class manager : public employee class manager : public employee { int level; // уровень employee * group; // подчиненные public: manager(char *, int, int, employee *); void print() const; }; void manager::print() const { employee::print(); cout print();} manager::manager(char* n, int i,int l, employee * g): employee(n,i), level(l), group(g)

Слайд 32


void main() void main() { employee person (“Иванов”,20); manager one_more(“Петров”,40,1,&person); person.print(); one_more.print(); }
Описание слайда:
void main() void main() { employee person (“Иванов”,20); manager one_more(“Петров”,40,1,&person); person.print(); one_more.print(); }

Слайд 33


Основные правила использования базовых и производных классов: Пусть функция F принадлежит базовому классу Б. Тогда в производном классе П можно: 1)...
Описание слайда:
Основные правила использования базовых и производных классов: Пусть функция F принадлежит базовому классу Б. Тогда в производном классе П можно: 1) полностью заменить функцию F (старая Б::F и новая П::F); 2) доопределить (частично изменить) функцию F; 3) использовать функцию Б::F без изменения. - Если объявить указатель рБ на базовый класс, то ему можно присвоить значение указателя на объект производного класса; - указателю рП на производный класс нельзя присвоить значение указателя на объект базовоrо класса; - регулирование доступа к компонентам базового и производного классов осуществляется с помощью атрибутов private, public и protected; - производный класс может быть в свою очередь базовым. Множество классов, связанных отношением наследования базовый - производный, называется иерархией классов.

Слайд 34


Наследование атрибутов компонентов базового класса:
Описание слайда:
Наследование атрибутов компонентов базового класса:

Слайд 35


class base class base {protected: int x; public: char * str; void f(int, char*); }; class generate : private base { protected: int base::x; public:...
Описание слайда:
class base class base {protected: int x; public: char * str; void f(int, char*); }; class generate : private base { protected: int base::x; public: char * base::str; base::f; …}

Слайд 36


Множественное наследование class base1 {public: int field; char * str; }; class base2 {public: int field; int data; }; class generate :public base1,...
Описание слайда:
Множественное наследование class base1 {public: int field; char * str; }; class base2 {public: int field; int data; }; class generate :public base1, public base2 {…}; Generate ex; ex.field = 4; ex.base1::filed = 4;

Слайд 37


class base class base {public: int field; char * str; }; class gen1 : public base {public: float s; }; class gen2 : public base {public: char * name;...
Описание слайда:
class base class base {public: int field; char * str; }; class gen1 : public base {public: float s; }; class gen2 : public base {public: char * name; }; class global : public gen1, public gen2 {…} ex;

Слайд 38


Использование виртуального класса class gen1 : virtual public base{...}; class gen2 : virtual public base{...}; class global : public gen1, public...
Описание слайда:
Использование виртуального класса class gen1 : virtual public base{...}; class gen2 : virtual public base{...}; class global : public gen1, public gen2 {…} ex; Формально конструктор класса global будет иметь вид: global::global() : base(), gen1(), gen2() {...}

Слайд 39


Полиморфизм class Base { public: int f(const int &d) ; int CallFunction(const int &d) { return f(d)+1; } }; class Derived: public Base { public: int...
Описание слайда:
Полиморфизм class Base { public: int f(const int &d) ; int CallFunction(const int &d) { return f(d)+1; } }; class Derived: public Base { public: int f(const int &d) { return d*d; } }; int main() { Base a; cout

Слайд 40


class Clock class Clock { public: void print() const { cout
Описание слайда:
class Clock class Clock { public: void print() const { cout

Слайд 41


Правила описания и использования виртуальных функций: Правила описания и использования виртуальных функций: Виртуальная функция может быть только...
Описание слайда:
Правила описания и использования виртуальных функций: Правила описания и использования виртуальных функций: Виртуальная функция может быть только методом класса. Любую перегружаемую операцию-метод класса можно сделать виртуальной. Виртуальная функция, как и сама виртуальность, наследуется. Виртуальная функция может быть константной. Если в базовом классе впервые объявлена виртуальная, то функция должна быть либо чистой (virtual int f(void) = 0;), либо для нее должно быть задано определение. Если в базовом классе определена виртуальная функция, то метод производного класса с такими же именем и прототипом автоматически является виртуальным. Конструкторы не могут быть виртуальными. Статические методы не могут быть виртуальными. Деструкторы могут (чаще — должны) быть. Если некоторая функция вызывается с использованием ее полного имени, то виртуальный механизм игнорируется.

Слайд 42


Вызов виртуальной функции может не являться виртуальным в некоторых случаях: Вызов виртуальной функции может не являться виртуальным в некоторых...
Описание слайда:
Вызов виртуальной функции может не являться виртуальным в некоторых случаях: Вызов виртуальной функции может не являться виртуальным в некоторых случаях: Вызывается не через указатель или ссылку: global object; object.f(); Вызывается через указатель или ссылку, но с уточнением имени класса: base * p; global object; p = &object; p->f(); // виртуальный вызов p->global::f(); // не виртуальный вызов вызывается в конструкторе или деструкторе базового класса.



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