X Код для використання на сайті:
Ширина px

Скопіюйте цей код і вставте його на свій сайт

X Для завантаження презентації, скористайтесь соціальною кнопкою для рекомендації сервісу SvitPPT Завантажити собі цю презентацію

Презентація на тему:
КЛАСИ ТА ОБ'ЄКТИ

Завантажити презентацію

КЛАСИ ТА ОБ'ЄКТИ

Завантажити презентацію

Презентація по слайдам:

Слайд 1

Лекція 5. КЛАСИ ТА ОБ'ЄКТИ Зрозуміти - означає звикнути і навчитись користуватись Річард Фейнман

Слайд 2

Програма Два підходи щодо програмування Структурне програмування Об'єктно-орієнтоване програмування - ООП Данні Функції/процедури для обробки данних Програма Об'єкт: данні+функції для обробки данних Об'єкт: данні+функції для обробки данних Об'єкт: данні+функції для обробки данних

Слайд 3

Коротка історія та причини переходу до ООП в С++ В 1972 році Деніс Рітчі запропонував мову програмування, ствоерну спеціально для програмістів: це мова С В 1979 році Б’єрн Страуструп для вирішення проблеми удосконалення програмних кодів шляхом переходу на ООП запропонував мову С with classes Остаточна версія - мова С++ (з 1983 року)

Слайд 4

ООП Ієрархія основних мов ООП

Слайд 5

ВСІ ООП-мови базуються на трьох механізмах 1. Інкапсуляція: механізм, який пов’язує та об’єднує в одне ціле код та дані. Для цього створюється об’єкт – конструкція, що підтримує інкапсуляцію. Базова одиниця інкапсуляції – клас. Клас містить дані та код для їх обробки. Об’єкт є екземпляром класа. 2. Поліморфізм: механізм, що дозволяє використовувати один інтерфейс для різних дій. Дозволяє понизити рівень складності програм. 3. Наслідування: Механізм, завдяки якому один об’єкт може отримувати властивості іншого об ’єкта. При цьому поліморфізм дозволяє змінювати поведінку дочірніх (похідних) класів

Слайд 6

Базові принципи ООП Інкапсуляція Поліморфізм Наслідування Програмний код + дані Єдиний інтерфейс Передача властивостей

Слайд 7

Основні терміни Клас – базова одиниця інкапсуляції. Клас поєднує в собі дані (поля) та програмний код (методи) для їх обробки. Клас є шаблоном, за яким створюються об'єкти Поле класу – змінна, описана в класі Метод класу – функція, описана в класі Члени класу - поля та методи класу Члени класу можуть бути відкритими та закритими (за умовчанням) Об'єкт – конкретний екземпляр класу

Слайд 8

Структурне програмування vs. ООП Програма - це будинок Будуємо з цеглин Будуємо з блоків Блоки = Об'єкти Тип блоку = Клас Добре для малих будинків, і не дуже добре для великих Добре для великих будинків, і не дуже добре для малих

Слайд 9

Оголошення класу class ім’я_класу{ //закриті поля та методи public: //відкриті поля та методи }список_об'єктів; Використовується "точковий синтаксис": ім'я_об'єкту.член_класу методи вказуються з круглими дужками Звернення до членів класу

Слайд 10

Приклад 5.1. Створення і використання класу #include using namespace std; // Оголошення класу SimpleClass: class SimpleClass{ public: // Цілочисельне поле: int number; }; int main(){ // Створення об'єкту MyObj класу SimpleClass: SimpleClass MyObj; // Полю об'єкта присвоюється значення: MyObj.number=5; cout

Слайд 11

Приклад 5.2. Декілька об'єктів #include using namespace std; class SimpleClass{ public: int number;}MyObj1, MyObj2; int main(){ MyObj1.number=5; MyObj2.number=++MyObj1.number; cout

Слайд 12

Приклад 5.3. Декілька об'єктів class SimpleClass{ public: int m, n; int summa(){ int k=n+m; return k;} void show(){ cout

Слайд 13

Приклад 5.3. Декілька об'єктів (продовження) int main(){ SimpleClass MyObj1,MyObj2; MyObj1.m=1; MyObj1.n=2; MyObj2.m=8; MyObj2.n=9; cout

Слайд 14

Приклад 5.4. Закриті і відкриті члени класу class SimpleClass{ //Закриті члени класу: int m; int n; public: //Відкриті члени класу: void show(); void setnm(int i,int j); };

Слайд 15

Приклад 5.4. Закриті і відкриті члени класу (продовження) int main(){ SimpleClass obj; obj.setnm(1,2); obj.show(); return 0;} //Опис методів класу: void SimpleClass::show(){ cout

Слайд 16

Статичні поля класу Статичне поле класу - поле, спільне для всіх об'єктів цього класу. Оголошується за допомогою ключового слова static. Приклад 5.5. Статичні поля класу class SimpleClass{ public: static int m; int n; void show();}obj1,obj2; //Повторне оголошення статичного поля: int SimpleClass::m;

Слайд 17

Приклад 5.5. Статичні поля класу (продовження) int main(){ SimpleClass::m=10; obj1.n=1; obj2.n=2; obj1.show(); obj2.show(); obj1.m=100; obj2.show(); return 0;} void SimpleClass::show(){ cout

Слайд 18

Перевантаження методів Як і звичайні функції, методи класів можна перевантажувати. Перевантаження методу - створення декількох версій методу з одною і тою самою назвою, але різними прототипами Приклад 5.6. Перевантаження методу class MyClass{ int a,b; public: void setab(int i,int j){ a=i; b=j;} void setab(int i){ a=i; b=i;} void getab(){ cout

Слайд 19

Передача об'єктів аргументами функцій При передачі об'єкту аргументом функції в якості імені аргументу вказується ім'я відповідного класу Приклад 5.7. Аргумент функції - об'єкт class ClassA{ public: double x,y; }objA; class ClassB{ public: int a,b; double f(ClassA obj){ return a*obj.x+b*obj.y;} }objB; void showB(ClassB obj){ cout

Слайд 20

Результат функції - об'єкт Якщо функція в якості результату повертає об'єкт, ідентифікатором типу результату вказують ім'я відповідного класу Приклад 5.8. Результат функції - об'єкт class ClassA{ public: double x; double y; }objA; class ClassB{ public: int a,b; }objB;

Слайд 21

Приклад 5.8. Результат функції - об'єкт (продовження) ClassA sumAB(ClassA obj1,ClassB obj2){ ClassA tmp; tmp.x=obj1.x+obj2.a; tmp.y=obj1.y+obj2.b; return tmp;} int main(){ ClassA obj; objA.x=2.5; objA.y=3.6; objB.a=2; objB.b=5; obj=sumAB(objA,objB); cout

Слайд 22

Вказівники на об'єкти Змінна-вказівник може посилатись на об'єкт. Оператор -> використовують для посилання на член класу. Ключове слово this є вказівником на об'єкт, з якого викликається метод Приклад 5.9. Вказівники на об'єкти class MyClass{ public: int n; void show(){cout

Слайд 23

Приклад 5.10. Використання вказівника this class MyClass{ public: int n,m; void show(){cout

Слайд 24

Масиви об'єктів При створенні масиву об'єктів в якості типу елементів вказують ім'я відповідного класу Приклад 5.11. Масиви об'єктів class MyClass{ public: double x; void show(){cout

Слайд 25

Дружні функції В загальному випадку зовнішня до класу функція доступу до закритих членів класу не має. Щоб функція мала доступ до закритих членів, її необхідно оголосити як дружню до класу. Для цього прототип функції, разом з ключовим словом friend вказується при описі класу Приклад 5.12. Дружні функції class MyClass{ double x; public: MyClass(double z){x=z;} //Дружня функція: friend void show(MyClass obj); }; void show(MyClass obj){cout

Слайд 26

Приклад 5.13. Дружні функції - 2 class B; class A{ double x; public: A(double z){x=z;} friend double summa(A a,B b); }a(3.5); class B{ double y; public: B(double z){y=z;} friend double summa(A a,B b); }b(2.3); double summa(A a,B b){ return a.x+b.y;} int main(){cout

Слайд 27

Конструктори і деструктори Конструктор - метод, що викликається автоматично при створенні об'єкту Деструктор - метод, що викликається автоматично при видаленні об'єкту з пам'яті Правила оголошення конструктора 1. Ім'я конструктора співпадає з назвою класу 2. Конструктор не повертає аргумент і для нього не вказується ідентифікатор типу результату 3. Конструктор може мати аргументи і його можна перевантажувати Правила оголошення деструктора 1. Ім'я деструктора починається з символу ~ (тильда) і співпадає з назвою класу 2. Деструктор не повертає аргумент і для нього не вказується ідентифікатор типу результату 3. Деструктор не має аргументів і його не можна перевантажувати

Слайд 28

Приклад 5.14. Оголошення конструктора class MyClass{ public: int m,n; //Конструктор класу: MyClass(){ m=0; n=0;} void show(){ cout

Слайд 29

Приклад 5.15. Конструктор з аргументами class MyClass{ public: int m,n; //Конструктор класу з аргументами: MyClass(int a,int b){ m=a; n=b;} void show(){ cout

Слайд 30

Приклад 5.16. Перевантаження конструктора class MyClass{ public: int m,n; MyClass(){m=0; n=0;} MyClass(int a){m=a; n=a;} MyClass(int a,int b){m=a; n=b;} void show(){ cout

Слайд 31

Приклад 5.17. Використання деструктора class MyClass{ public: int m,n; //Конструктор класу: MyClass(){ m=0; n=0; cout

Слайд 32

Резюме 1. Клас є базовою одиницею інкапсуляції, містить поля (дані) та методи (код для обробки даних). Екземпляром класу є об'єкт. 2. Поля і методи класу можуть бути закритими і відкритими. 3. Статичне поле - це поле, спільне для всіх об'єктів даного класу. 4. Щоб зовнішня функція мала доступ до закритих полів, її необхідно оголосити як дружню. 5. Об'єкти можна передавати аргументами функцій, повертати в якості результату, створювати масиви об'єктів, створювати вказівники на об'єкти. 6. Методи класів можна перевантажувати. 7. Конструктор - метод, що запускається при створенні об'єкту. Конструктор можна перевантажувати. 8. Деструктор - метод, що запускається при знищенні об'єкту. Деструктор не можна перевантажувати.

Завантажити презентацію

Презентації по предмету Інформатика