🗊 Презентация Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1)

Нажмите для полного просмотра!
Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №1 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №2 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №3 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №4 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №5 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №6 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №7 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №8 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №9 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №10 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №11 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №12 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №13 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №14 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №15 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №16 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №17 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №18 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №19 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №20 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №21 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №22 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №23 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №24 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №25 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №26 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №27 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №28 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №29 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №30 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №31 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №32 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №33 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №34 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №35 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №36 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №37 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №38 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №39 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №40 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №41 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №42 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №43 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №44 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №45 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №46 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №47 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №48 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №49 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №50 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №51 Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1), слайд №52

Содержание

Вы можете ознакомиться и скачать презентацию на тему Об'єктно-орієнтоване програмування. Принцип інкапсуляції. (Лекція 1). Доклад-сообщение содержит 52 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1


Бублик Володимир Васильович Об'єктно-орієнтоване програмування Частина 1. Об'єктне програмування. Лекція 1. Принцип інкапсуляції Лекції для студентів...
Описание слайда:
Бублик Володимир Васильович Об'єктно-орієнтоване програмування Частина 1. Об'єктне програмування. Лекція 1. Принцип інкапсуляції Лекції для студентів 2 курсу

Слайд 2


Парадигми програмування (повторення)
Описание слайда:
Парадигми програмування (повторення)

Слайд 3


Погляд в майбутнє Програмувати, думаючи про нові застосування (reuse) Узагальнене програмування дає нові застосування програмних текстів Об'єктне і...
Описание слайда:
Погляд в майбутнє Програмувати, думаючи про нові застосування (reuse) Узагальнене програмування дає нові застосування програмних текстів Об'єктне і ієрархічне − нові застосування об'єктних кодів (об'єктів і класів)

Слайд 4


Інкапсуляція Під інкапсуляцією розумітимемо спосіб збирання певних елементів в одне ціле з метою утворення нової сутності (або абстракції нового...
Описание слайда:
Інкапсуляція Під інкапсуляцією розумітимемо спосіб збирання певних елементів в одне ціле з метою утворення нової сутності (або абстракції нового рівня) Команди інкапсульовані в функцію Поля інкапсульовані в структуру struct Point { double _x; double _y; }

Слайд 5


Дані і функції в структурах (як С моделює С++) Чи можна інкапсулювати функцію в структуру? Так, можна за допомогою указника функції struct QuasiPoint...
Описание слайда:
Дані і функції в структурах (як С моделює С++) Чи можна інкапсулювати функцію в структуру? Так, можна за допомогою указника функції struct QuasiPoint { double _x; double _y; // інкапсуляція указника на функцію double (*f)(QuasiPoint, QuasiPoint); }; Як викликати f?

Слайд 6


Ініціалізація та виклик інкапсульованої функції double distance (QuasiPoint, QuasiPoint); QuasiPoint u={0, 1, distance}; cout
Описание слайда:
Ініціалізація та виклик інкапсульованої функції double distance (QuasiPoint, QuasiPoint); QuasiPoint u={0, 1, distance}; cout

Слайд 7


Ініціалізація та виклик інкапсульованої функції double phi (QuasiPoint, QuasiPoint); QuasiPoint v={1, 1, phi}; cout
Описание слайда:
Ініціалізація та виклик інкапсульованої функції double phi (QuasiPoint, QuasiPoint); QuasiPoint v={1, 1, phi}; cout

Слайд 8


Інкапсуляція в об'єкті Це добре чи зле, що в одній і тій же структурі функція-член структури в різних екземплярах позначає різні дії? u.f(a,b)...
Описание слайда:
Інкапсуляція в об'єкті Це добре чи зле, що в одній і тій же структурі функція-член структури в різних екземплярах позначає різні дії? u.f(a,b) відстань від a до b v.f(a,b) кут між векторами 0a і 0b Як засобами С зробити так, щоб для всіх екземплярів QuasiPoint указник показував завжди одну й ту ж функцію?

Слайд 9


Статичний указник на функцію struct QuPoStaPtr { double _x; double _y; // інкапсуляція указника на функцію в класі static double (*f)(QuPoStaPtr,...
Описание слайда:
Статичний указник на функцію struct QuPoStaPtr { double _x; double _y; // інкапсуляція указника на функцію в класі static double (*f)(QuPoStaPtr, QuPoStaPtr); }; // Один указник для всіх об’єктів double (* QuPoStaPtr ::f) (QuPoStaPtr, QuPoStaPtr) = distance; cout

Слайд 10


Інкапсуляція указника на функцію в класі Діаграма класу, а не об'єкта
Описание слайда:
Інкапсуляція указника на функцію в класі Діаграма класу, а не об'єкта

Слайд 11


Створення і видалення екземпляру структури struct PreWrappedVector { static const int _n; double * _v; }; // Функція створення вектора a._v void...
Описание слайда:
Створення і видалення екземпляру структури struct PreWrappedVector { static const int _n; double * _v; }; // Функція створення вектора a._v void construct (PreWrappedVector& a); // Функція видалення вектора a._v void destroy (PreWrappedVector& a);

Слайд 12


Створення і видалення екземпляру структури // Типовий сценарій обробки PreWrappedVector v; // Хто гарантує наявність конструктора і // створення...
Описание слайда:
Створення і видалення екземпляру структури // Типовий сценарій обробки PreWrappedVector v; // Хто гарантує наявність конструктора і // створення вектора до першого вживання? construct(v); ………………………… destroy(v); // Хто гарантує наявність деструктора і видалення // вектора після завершення його обробки?

Слайд 13


Конструктор і деструктор struct WrappedVector { static const int _n; double * _v; // Це конструктор, він створює об'єкт // при його визначенні...
Описание слайда:
Конструктор і деструктор struct WrappedVector { static const int _n; double * _v; // Це конструктор, він створює об'єкт // при його визначенні WrappedVector(); // Це деструктор, він автоматично видаляє об'єкт ~WrappedVector(); };

Слайд 14


Реалізація конструктора WrappedVector::WrappedVector() { cout
Описание слайда:
Реалізація конструктора WrappedVector::WrappedVector() { cout

Слайд 15


Реалізація деструктора WrappedVector::~WrappedVector() { cout
Описание слайда:
Реалізація деструктора WrappedVector::~WrappedVector() { cout

Слайд 16


Головне правило об'єктного програмування Кожній структурі надаються конструктор і деструктор
Описание слайда:
Головне правило об'єктного програмування Кожній структурі надаються конструктор і деструктор

Слайд 17


Автоматичний виклик конструктора і деструктора int main() { // Визначення об'єктів приводить // до виклику конструкторів. // Ось він: WrappedVector...
Описание слайда:
Автоматичний виклик конструктора і деструктора int main() { // Визначення об'єктів приводить // до виклику конструкторів. // Ось він: WrappedVector w1, w2; …………………………………………… // Життя об'єктів завжди закінчується // автоматичним викликом їх деструкторів // ост тут: return 0; }

Слайд 18


Хто викликає конструктор і деструктор? Це робить система програмування // new: конструктор; delete: деструктор int main() { WrappedVector *pw = new...
Описание слайда:
Хто викликає конструктор і деструктор? Це робить система програмування // new: конструктор; delete: деструктор int main() { WrappedVector *pw = new WrappedVector; // Створення об'єкту: неявний виклик конструктора ………………………………………………… // Видалення об'єкту: неявний виклик деструктора delete pw; return 0; }

Слайд 19


Конструктор і деструктор за замовчуванням Чи мала б структура PreWrappedVector конструктора і деструктора, якщо їх не визначити явно? struct...
Описание слайда:
Конструктор і деструктор за замовчуванням Чи мала б структура PreWrappedVector конструктора і деструктора, якщо їх не визначити явно? struct PreWrappedVector { static const int _n; double * _v; };

Слайд 20


Конструктор і деструктор за замовчуванням Так! Компілятор генерує порожні конструктор і деструктор для кожної структури, яка не має власних //...
Описание слайда:
Конструктор і деструктор за замовчуванням Так! Компілятор генерує порожні конструктор і деструктор для кожної структури, яка не має власних // Конструктор за замовчуванням PreWrappedVector:: PreWrappedVector(){ }; // Деструктор за замовчуванням PreWrappedVector:: ~PreWrappedVector(){ }; // Краще б їх не було, але так досягається // сумісність С і С++

Слайд 21


Друге правило об'єктного програмування Ніколи не користується конструкторами за замовчуванням, згенерованими системою програмування Чому? ВВ...
Описание слайда:
Друге правило об'єктного програмування Ніколи не користується конструкторами за замовчуванням, згенерованими системою програмування Чому? ВВ поставить двійку Визначивши власні конструктор і деструктор ви повністю контролюєте створення і видалення ваших об'єктів, а не передоручаєте це комусь (віддаєте дітей в дитячий будинок)

Слайд 22


Дані-члени структур (атрибути) і функції(методи) struct Point { // Атрибути double _x, _y; // Методи Point (double x=0, double y=0): _x(x),_y(y) { };...
Описание слайда:
Дані-члени структур (атрибути) і функції(методи) struct Point { // Атрибути double _x, _y; // Методи Point (double x=0, double y=0): _x(x),_y(y) { }; ~Point(){ }; // Функції доступу до атрибутів double& x() {return _x;} double& y() {return _y;} };

Слайд 23


Виклик конструктора з параметрами // Замість Point a = Point(1,2); // пишемо скорочено Point a1(1,2); Point b = Point(1); Point b1(1); Point c =...
Описание слайда:
Виклик конструктора з параметрами // Замість Point a = Point(1,2); // пишемо скорочено Point a1(1,2); Point b = Point(1); Point b1(1); Point c = Point(); Point c1;

Слайд 24


Навіщо потрібні функції доступу? Для того щоб контролювати всі випадки використання атрибутів у кожному об'єкті
Описание слайда:
Навіщо потрібні функції доступу? Для того щоб контролювати всі випадки використання атрибутів у кожному об'єкті

Слайд 25


Виклик методів Виклик методів відрізняється від виклику звичайних функцій // Застосувати до екземпляру а структури Point // функцію х() a.x() = 10;...
Описание слайда:
Виклик методів Виклик методів відрізняється від виклику звичайних функцій // Застосувати до екземпляру а структури Point // функцію х() a.x() = 10; cout

Слайд 26


Варіант функцій доступу: утиліти struct Point { // Атрибути double _x, _y; // Конструктор Point (double x=0, double y=0): _x(x),_y(y) { }; //...
Описание слайда:
Варіант функцій доступу: утиліти struct Point { // Атрибути double _x, _y; // Конструктор Point (double x=0, double y=0): _x(x),_y(y) { }; // Деструктор ~Point(){}; } // Утиліти доступу до атрибутів double& x(Point & a) {return a._x;} double& y(Point & a) {return a._y;}

Слайд 27


Виклик утиліти Виклик утиліт є звичайним викликом функцій // Передати до функції x() параметр a x(a) = 10; cout
Описание слайда:
Виклик утиліти Виклик утиліт є звичайним викликом функцій // Передати до функції x() параметр a x(a) = 10; cout

Слайд 28


Прямий доступ Замість функкції x(a) або методу a.x() можна було б напряму звертатися до члена структури _x a._x = 10; cout
Описание слайда:
Прямий доступ Замість функкції x(a) або методу a.x() можна було б напряму звертатися до члена структури _x a._x = 10; cout

Слайд 29


Для чого потрібні методи доступу? struct Point { private: //закрили прямий доступ до атрибутів double _x; double _y; public: //відкрили доступ до...
Описание слайда:
Для чого потрібні методи доступу? struct Point { private: //закрили прямий доступ до атрибутів double _x; double _y; public: //відкрили доступ до методів Point (double x=0, double y=0): _x(x),_y(y) { }; ~Point(){}; double& x() {return _x;} double& y() {return _y;} };

Слайд 30


Права доступу Як і раніше, кожен, хто бачить об'єкт може скористатися його відкритим методом // Застосувати до екземпляру а структури Point //...
Описание слайда:
Права доступу Як і раніше, кожен, хто бачить об'єкт може скористатися його відкритим методом // Застосувати до екземпляру а структури Point // відкритий метод х() a.x() = 10; cout

Слайд 31


Права доступу Сам метод, завдяки своїй належності до структури сам бачить її закриту частину // Як і раніше, ім'я _х в тексті функції double& x()...
Описание слайда:
Права доступу Сам метод, завдяки своїй належності до структури сам бачить її закриту частину // Як і раніше, ім'я _х в тексті функції double& x() {return _x;} // позначає поле _х того екземпляру, // до якого застосовано функцію

Слайд 32


Права доступу Але для сторонніх атрибути стали невидимими int main () { Point a; a._x = 10; cout
Описание слайда:
Права доступу Але для сторонніх атрибути стали невидимими int main () { Point a; a._x = 10; cout

Слайд 33


Клас class Point { private: //закрита частина класу double _x; double _y; public: //відкрита частина класу Point (double x=0, double y=0):...
Описание слайда:
Клас class Point { private: //закрита частина класу double _x; double _y; public: //відкрита частина класу Point (double x=0, double y=0): _x(x),_y(y) { }; ~Point(){}; double& x() {return _x;} double& y() {return _y;} };

Слайд 34


Структури і класи Структуру, яку поділено на відкриту і закриту частини називатимемо класом. Структуру розглядатимемо як архаїзм від С. В структурі...
Описание слайда:
Структури і класи Структуру, яку поділено на відкриту і закриту частини називатимемо класом. Структуру розглядатимемо як архаїзм від С. В структурі все звичайно вважається відкритим. Екземпляри структур і класів називатимемо об'єктами. Кожен об'єкт створюється в результаті виклику конструктора, а видаляється деструктором. Структура може не мати власних конструктора і деструктора. Ваші класи завжди повинні мати власні конструктори (можливо декілька) і деструктор (не забудьте про ВВ).

Слайд 35


Клас vs. структура Правила доступу ― це поділ класу на відкриту (public) і закриту (private) частини. Закрита частина доступна лише з середини класу,...
Описание слайда:
Клас vs. структура Правила доступу ― це поділ класу на відкриту (public) і закриту (private) частини. Закрита частина доступна лише з середини класу, відкрита ― звідусіль. Формально клас відрізняється від структури лише правилом замовчування прав доступу: Все, що явно не відкрите в класі, вважається закритим Все, що явно не закрите в структурі, вважається відкритим Структури звичайно вживають як сукупність даних, класи ― як сукупність даних (атрибутів) і функцій-членів класу (методів)

Слайд 36


Повторення. Два способи запису ініціалізації double x = 1.0; double y = x; double u = 2.0; // але можна й так double v(u); // це те ж саме, що //...
Описание слайда:
Повторення. Два способи запису ініціалізації double x = 1.0; double y = x; double u = 2.0; // але можна й так double v(u); // це те ж саме, що // double v = u;

Слайд 37


Ініціалізація атрибутів в конструкторі class Complex { private: double _re; double _im; public: Complex (double re, double im): // ініціалізація...
Описание слайда:
Ініціалізація атрибутів в конструкторі class Complex { private: double _re; double _im; public: Complex (double re, double im): // ініціалізація атрибутів (добра!) _re(re), _im(im) { }; }

Слайд 38


Ініціалізація атрибутів в конструкторі class Complex { private: double _re; double _im; public: Complex (double re, double im): // ініціалізація...
Описание слайда:
Ініціалізація атрибутів в конструкторі class Complex { private: double _re; double _im; public: Complex (double re, double im): // ініціалізація атрибутів (погана!) { _re = re; _im = im; };

Слайд 39


Приклад 1. Person.h class Person { private: const int _len; char * _name; public: // реалізація винесена в срр-файл Person(int, char []); ~Person();...
Описание слайда:
Приклад 1. Person.h class Person { private: const int _len; char * _name; public: // реалізація винесена в срр-файл Person(int, char []); ~Person(); };

Слайд 40


Приклад 1. Person.cpp (конструктор) Person::Person (int len, char name[]): _len(len), _name (new char[_len+1]); { for (int i=0; i
Описание слайда:
Приклад 1. Person.cpp (конструктор) Person::Person (int len, char name[]): _len(len), _name (new char[_len+1]); { for (int i=0; i

Слайд 41


Приклад 1. Person.cpp (деструктор) Person::~Person() { cout
Описание слайда:
Приклад 1. Person.cpp (деструктор) Person::~Person() { cout

Слайд 42


Приклад 2. WrappedVector.h class WrappedVector { private: static const int _n; double * _v; public: WrappedVector(); ~WrappedVector(); };
Описание слайда:
Приклад 2. WrappedVector.h class WrappedVector { private: static const int _n; double * _v; public: WrappedVector(); ~WrappedVector(); };

Слайд 43


Приклад 2. WrappedVector.cpp const int WrappedVector::_n = 100; WrappedVector::WrappedVector(): _v (new double[_n];) { cout
Описание слайда:
Приклад 2. WrappedVector.cpp const int WrappedVector::_n = 100; WrappedVector::WrappedVector(): _v (new double[_n];) { cout

Слайд 44


Приклад 2. WrappedVector.cpp WrappedVector::~WrappedVector() { cout
Описание слайда:
Приклад 2. WrappedVector.cpp WrappedVector::~WrappedVector() { cout

Слайд 45


Селектори і модифікатори Як добратися до атрибутів, якщо вони закриті? ― За допомогою методів доступу: селекторів і модифікаторів Два в одному...
Описание слайда:
Селектори і модифікатори Як добратися до атрибутів, якщо вони закриті? ― За допомогою методів доступу: селекторів і модифікаторів Два в одному double& x() { return _x;} 2а. Селектор double getX() { return _x; }; 2b. Модифікатор void setX (double x) { _x = x;}

Слайд 46


Приклад 2. WrappedVector. Селектор-модифікатор class WrappedVector { private: static const int _n; double * _v; public: class BadIndex { }; double&...
Описание слайда:
Приклад 2. WrappedVector. Селектор-модифікатор class WrappedVector { private: static const int _n; double * _v; public: class BadIndex { }; double& getSet (int i); WrappedVector(); ~WrappedVector(); };

Слайд 47


Приклад 2. WrappedVector. Селектор-модифікатор double& WrappedVector::getSet (int i) { if ((i=_len)) throw BadIndex; return _v[i]; } WrappedVector u;...
Описание слайда:
Приклад 2. WrappedVector. Селектор-модифікатор double& WrappedVector::getSet (int i) { if ((i=_len)) throw BadIndex; return _v[i]; } WrappedVector u; u.getSet(0) = 500; cout

Слайд 48


Приклад 2. WrappedVector. Селектор і модифікатор double WrappedVector::get (int i) { if ((i=_len)) throw BadIndex; return _v[i]; } void...
Описание слайда:
Приклад 2. WrappedVector. Селектор і модифікатор double WrappedVector::get (int i) { if ((i=_len)) throw BadIndex; return _v[i]; } void WrappedVector::set (int i, double x) { if ((i=_len)) throw BadIndex; _v[i] = x; return; }

Слайд 49


Чому віддавати перевагу Окремий модифікатор дозволяє контролювати кожну спробу зміни значення атрибуту, а селектор ― кожне використання його...
Описание слайда:
Чому віддавати перевагу Окремий модифікатор дозволяє контролювати кожну спробу зміни значення атрибуту, а селектор ― кожне використання його значення. Модифікатор-селектор не відрізняє зміну значення від читання; порушує інкапсуляцію (як?) Але кожна мова програмування пропонує оператор індексування [ ] ― по суті селектор-модифікатор.

Слайд 50


Що вживати: клас чи структуру? Слідкуємо за створенням і видаленням об'єктів, регламентуємо доступ до його частин ― вживаємо клас. Обов'язкові...
Описание слайда:
Що вживати: клас чи структуру? Слідкуємо за створенням і видаленням об'єктів, регламентуємо доступ до його частин ― вживаємо клас. Обов'язкові конструктор(и) і деструктор, модифікатори і селектори для кожного призначеного для використання зовні атрибуту. Правило доступу: Атрибути, як правило, закриті; методи можуть бути відкриті. В інших випадках можна обходитися структурами

Слайд 51


Об'єкт – екземпляр класу Об'єкт характеризується ідентичністю, станом і поведінкою. Ідентичність ― це властивість, що відрізняє об'єкт від усіх інших...
Описание слайда:
Об'єкт – екземпляр класу Об'єкт характеризується ідентичністю, станом і поведінкою. Ідентичність ― це властивість, що відрізняє об'єкт від усіх інших об'єктів. Об'єкт набуває ідентичності при створенні його конструктором і втрачає її при видаленні його деструктором. Стан визначається набором значень атрибутів об'єкту. Поведінка визначається набором методів.

Слайд 52


Висновок Вивчили Як створити об'єкт в заданому початковому стані Як змінити стан об'єкту Як визначити стан об'єкту Як видалити об'єкт Наступна...
Описание слайда:
Висновок Вивчили Як створити об'єкт в заданому початковому стані Як змінити стан об'єкту Як визначити стан об'єкту Як видалити об'єкт Наступна задача: наділити об'єкти поведінкою



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