[С++ ]

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

 

Об'єкт – екземпляр класу, або сутність, яка має певну поведінку і для нього виділена оперативна пам'ять.

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

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

Основні принципи ООП:

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

Синтаксис[ред.]

Класи оголошуються за допомогою ключового слова class, і синтаксис має наступний формат:

class ім’я_класу { 
 специфікатор_доступу_1: 
 член_класу1; 
 специфікатор_доступу_2: 
 член_класу2; 
 ... 
} імена_об’єктів;