МЕТОДИ ОБ'ЄКТНО- ОРІЄНТОВАНОГО ПРОГРАМУВАННЯ Володимир Васильович Бублик Кафедра мультимедійних систем, кімн. 204/1 Консультації: середа, четвер год. You are welcome!
Що таке ООП? Те, чим займаються розробники великих і надвеликих програмних систем © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель2
Думка авторитета "This paradigm closely reflects the structure of systems 'in the real world', and it is therefore well suited to model complex systems with complex behaviors. © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель3 Niklaus Wirth, "Good Ideas through the Looking Glass"
Поки ще може не пізно? By claiming that they can contribute to software engineering, the soft scientists make themselves even more ridiculous. (Not less dangerous, alas!) In spite of its name, software engineering requires (cruelly) hard science for its support. © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель4 Edsgar W. Dijkstra, How do we tell truths that might hurt, EWD498?
Програма МООП 1.Обєктна модель 2.Типова схема класу 3.Обробка винятків 4.Відкладене копіювання 5.Функтори 6.Вкладення (layering) обєктів 7.Ієрархія класів 8.Поліморфізм 9.Параметризовані класи (class template) 10.Рефакторінг програмної системи 11.Проектні взірці (design pattern) © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель5
6 Література
ЛЕКЦІЯ 1. ОБ'ЄКТНА МОДЕЛЬ © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель7
Обєктно-орієнтоване програмування Методологія програмування, яка розглядає програму як сукупність обєктів, кожен з яких є обєктом певного класу, а самі класи утворюють систему успадкування. Без успадкування маємо програмування на основі абстрактних типів даних, а мову обєктну. © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель8
Три кити ООП ООП ґрунтується на об'єктах, а не алгоритмах, пов'язаних ієрархіями вкладення; Кожен об'єкт суть екземпляр певного класу Класи утворюють ієрархію спадкувань ООП = Інкапсуляція, успадкування, поліморфізм залишимо кухаркам © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель9
Моделі програмних систем © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель10
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель11 Елементи об'єктної моделі (за Г.Бучем 1 ) Абстрагування Інкапсуляція Модульність Ієрархічність Типізація Паралелізм Збережність 1) Г.Буч, Объектно-ориентированный анализ и проектирование, Бином, 1998
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель12 Абстрагування Абстракція виділяє істотні характеристики обєкту, що відрізняють його від усіх інших видів обєктів і в такий спосіб визначає його концептуальні межі з точки зору спостерігача.
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель13 Інкапсуляція Інкапсуляція це процесс розмежування елеметів обєкту, що визначають його будову і поведінку з метою відокремлення контрактних зобовязань абстракції від їх реалізації.
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель14 Модульність Модульність це властивість системи, яку розкладено на внутрішньо звязані, але слабо повязані одне з одним частини. Модульність дозволяє зберігати абстракції осібно
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель15 Ієрархічність Ієрархія це упорядкування абстракцій за рівнями. Два види ієрархії: класів (is a: бути чимось); обєктів (part of: входити до чогось).
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель16 Типізація Типізація це засіб захисту від використання обєктів одного класу замість іншого, або принаймні спосіб управління цим використанням. Статичне (раннє) vs. динамічне (пізнє) звязування імен з типами. Успадкування + пізнє звязування = поліморфізм
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель17 Паралелізм Паралелізм це властивість, що відрізняє активні обєкти від пасивних Паралелізм дозволяє різним об'єктам функціонувати одночасно
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель18 Збережність Збережність це властивість обєкту існувати в часі, переживши процес, який його породив, та (або) у просторі, переміщаюсиь за межі свого адресного простору.
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель19 Об'єкт Обєкту властиві стан, поведінка та ідентичність; структура і поведінка подібних обєктів визначаються спільним для них класом.
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель20 Клас Клас це множина обєктів, що мають спільну структуру і поведінку.
Ієрархія класів Успадкування - це таке відношення між класами, при якому один клас повторює структуру і поведінку іншого класу (поодиноке успадкування ) або інших класів (кратне успадкування ). © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель21 Студент теж людина!
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель22 Схема будови класу class T { //Конструктор створює нову ідентичність T(T1,…,Tn); T(const T&); //Можливий варіант: T(T&); але не Т(Т) //Копіювальне присвоєння не створює нової //ідентичності T& operator=(const T&); //Деструктор видаляє ідентичність ~T(); };
ПОВТОРИТИ © 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель23
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель24 Канонічні форми Арифметичних операцій const T& operator op (const T&) const; const T& operator op (const T&,const T&); Копіювального присвоєння T& operator= (const T&); T operator= ( T&) T& operator= ( T) T operator= ( T)
© 2006 Бублик В.В. МООП. Лекція 1. Об'єктна модель25 Властивості конструкторів Копіювання Конвертори Проект рядків символів