Сутність об'єктно-орієнтованого підходу до програмування (класи)

Сутність об'єктно-орієнтованого підходу до програмування (класи)

Головна | Про нас | Зворотній зв'язок

Основні ідеї об'єктно-орієнтованого підходу спираються на наступні положення:

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

З точки зору мови програмування клас об'єктів можна розглядати як тип даного, а окремий об'єкт - як дане цього типу. Визначення програмістом власних класів об'єктів для конкретного набору задач повинно дозволити описувати окремі завдання в термінах самого класу завдань (при відповідному виборі імен типів та імен об'єктів, їх параметрів і виконуваних дій).

Таким чином, об'єктно-орієнтований підхід передбачає, що при розробці програми повинні бути визначені класи які у програмі об'єктів і побудовано їх опису, потім створені екземпляри необхідних об'єктів і визначено взаємодію між ними.

Класи об'єктів часто зручно будувати так, щоб вони утворювали ієрархічну структуру. Наприклад, клас "Студент", що описує абстрактного студента, може служити основою для побудови класів "Студент 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 ();

Схожі статті