Головна | Про нас | Зворотній зв'язок
Основні ідеї об'єктно-орієнтованого підходу спираються на наступні положення:
- Програма представляє собою модель деякого реального процесу, частини реального світу.
- Модель реального світу або його частини може бути описана як сукупність взаємодіючих між собою об'єктів.
- Об'єкт описується набором параметрів, значення яких визначають стан об'єкта, і набором операцій (дій), які може виконувати об'єкт.
- Взаємодія між об'єктами здійснюється посилкою спеціальних повідомлень від одного об'єкта до іншого. Повідомлення, отримане об'єктом, може вимагати виконання певних дій, наприклад, зміни стану об'єкта.
- Об'єкти, описані одним і тим же набором параметрів і здатні виконувати один і той же набір дій, є клас однотипних об'єктів.
З точки зору мови програмування клас об'єктів можна розглядати як тип даного, а окремий об'єкт - як дане цього типу. Визначення програмістом власних класів об'єктів для конкретного набору задач повинно дозволити описувати окремі завдання в термінах самого класу завдань (при відповідному виборі імен типів та імен об'єктів, їх параметрів і виконуваних дій).
Таким чином, об'єктно-орієнтований підхід передбачає, що при розробці програми повинні бути визначені класи які у програмі об'єктів і побудовано їх опису, потім створені екземпляри необхідних об'єктів і визначено взаємодію між ними.
Класи об'єктів часто зручно будувати так, щоб вони утворювали ієрархічну структуру. Наприклад, клас "Студент", що описує абстрактного студента, може служити основою для побудови класів "Студент 1 курсу", "Студент 2 курсу" і т.д. які мають всі властивості студента взагалі і деякими додатковими властивостями, що характеризують студента конкретного курсу. При розробці інтерфейсу з користувачем програми можуть використовувати об'єкти загального класу "Вікно" і об'єкти класів спеціальних вікон, наприклад, вікон інформаційних повідомлень, вікон введення даних і т.п. У таких ієрархічних структурах один клас може розглядатися як базовий для інших, похідних від нього класів. Об'єкт похідного класу має всі властивості базового класу і деякими власними властивостями, він може реагувати на ті ж типи повідомлень від інших об'єктів, що і об'єкт базового класу і на повідомлення, що мають сенс тільки для похідного класу. Зазвичай кажуть, що об'єкт похідного класу успадковує всі властивості свого базового класу.
Одним з найбільш важливих понять С ++ є клас. Клас - це механізм для створення нових типів.
Синтаксис опису класу схожий на синтаксис опису структури.
закриті елементи - члени класу
відкриті елементи - члени класу
На що тут слід звернути увагу?
double projection (_3d r);
В С ++ для створення об'єктів традиційно прийнято використовувати ключове слово class.
Хоча функції mod () і projection (_3d r) оголошені в _3d, вони ще не визначені. Для визначення методу - члена класу потрібно зв'язати ім'я класу, частиною якого є метод, з ім'ям класу. Це досягається шляхом написання імені функції слідом за ім'ям класу з двома двокрапками. Два двокрапки називають операцією розширення області видимості.
return sqrt (x * x + y * y + z * z);
double _3d :: projection (_3d r)
return (x * r.x + y * r.y + z * r.z) / mod ();