Обєктно-орієнтоване програмування (ООП) в C++ . Навчання програмуванню

11.07.2015

Об’єктно-орієнтоване програмування (ООП) в C++

Опубліковано 17.05.2012 22:32 користувачем admin

Об’єктно-орієнтоване програмування (ООП) — підхід до програмування, при якому основними концепціями є поняття об’єктів і класів.

Клас — це визначається розробником тип даних.

Тип даних характеризується:

  1. Способом зберігання та подання цих даних.
  2. Призначенням цих даних (профілем їх використання).
  3. Набором дій, що над цими даними можуть проводиться.

Наприклад, тип int призначений для зберігання цілих чисел і передбачає ряд операція над ними(+,-,*,/,% тощо).

Клас — це тип, що описує пристрій об’єктів, їх поведінку та спосіб подання.

Об’єкт — сутність володіє певним поведінкою і способом подання, тобто відноситься до класу (кажуть, що об’єкт — це екземпляр класу, якщо він до нього ставиться).

Клас можна порівняти з кресленням, згідно з яким створюються об’єкти. Зазвичай класи розробляють таким чином, щоб їх об’єкти відповідали об’єктів предметної області розв’язуваної задачі.

Опис класу починається зі службового слова class, слідом за яким вказується ім’я класу. Потім в блоці слід опис класу і після закриваючої дужки блоку ставиться крапка з комою.

Опис класу складається з полів і методів.

Поля (або властивості, в рамках C++ це можна вважати синонімом) описують дані, які зможуть зберігати екземпляри класу (тобто об’єкти). Конкретні значення зберігаються вже всередині об’єктів. Поля оголошуються в тілі класу.

До полів всередині класу можна звертатися безпосередньо за іменами полів.

Методи класу — це функції, які можуть застосовуватися до екземплярів класу. Грубо кажучи, метод — це функція оголошена всередині класу і призначена для роботи з об’єктами.

Методи оголошуються в тілі класу. Описуватися можуть там же, але можуть і за межами класу (всередині класу в такому випадку достатньо представити прототип методу, а за межами класу визначати метод поставивши перед його іменем — ім’я класу і оператор. ).

Методи і поля входять до складу класу називаються членами класу. При цьому методи часто називають функціями-членами класу.

Приклад:

У прикладі описаний клас Complex з двома полями img і real .

Абстракція даних

Абстракція даних — це виділення істотних характеристик об’єкта, які відрізняють його від інших об’єктів, чітко визначаючи його межі.

Абстракція даних в ООП передбачає виділення характеристик, суттєвих у рамках розв’язуваної задачі і розглянутої предметної області.

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

Вага, розмір і положення — це поля майбутнього об’єкта-контейнера.

Методи, які до цього об’єкту зможуть застосовуватися можливі такі: створити в програмі новий об’єкт-контейнер, перемістити об’єкт на зазначену позицію, видалити об’єкт зі складу, позначивши зайняте ним місце як вільний.

Ключові риси ООП

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

Рівні доступу до членів класу

За рівнем доступу всі члени класу діляться на відкриті ( public ), закриті ( private ) і захищені ( protected ).

Перед оголошенням членів всередині класу ставляться відповідні ключові слова. Якщо таке слово не поставлено, то вважається, що член оголошений з рівнем private. У прикладі вище класу Complex. відповідно, обидва поля мають рівень доступу private .

Члени оголошені як private доступні тільки усередині класу.

Члени оголошені як protected доступні всередині класу і всередині всіх його нащадків.

Члени оголошені як public доступні як всередині, так поза класу (у тому числі в нащадках).

Короткий опис статті: об’єктно орієнтоване програмування

Джерело: Об’єктно-орієнтоване програмування (ООП) в C++ | Навчання програмування

Також ви можете прочитати