Клас - це тип даних, який описує структуру даних, їх поведінку і спосіб представлення. Клас можна порівняти з шаблоном, згідно якого створюються об'єкти.
Об'єкт – екземпляр класу, або сутність, яка має певну поведінку і для нього виділена оперативна пам'ять.
Поля (або властивості) — описують дані, які можуть зберігати в собі екземпляри класу. До полів в середині класу можна звертатися безпосередньо по іменам полів.
Методи класу — це функції, котрі можуть застосовуватися до екземплярів класу. Грубо кажучи, метод – це функція, яка об'явлена всередині класу і призначена для роботи з його об'єктами.
Основні принципи ООП:
- Інкапсуляція — це принцип, згідно якого кожен клас повинен розглядатися як чорний ящик — користувач класу повинен бачити і користуватися лише інтерфейсною частиною класу (тобто списком задекларований властивостей і методів класу) і не розбиратися в його внутрішній організації. Тому дані прийняти інкапсулювати (приховувати) в класі таким чином, щоб доступ до них для читання чи запису відбувався не на пряму а за допомогою методів. Принцип інкапсуляції (теоретично) дозволяє мінімізувати кількість зв'язків між класами, і відповідно, спростити незалежну реалізацію і модифікацію класів.
- Спадкування — це створення нового класу спадкоємця від уже існуючого батьківського класу. Наслідування відбувається з передачею усіх або деяких полів і методів від батьківського класу до класу спадкоємця. В класі спадкоємці в процесі наслідування можливо, при необхідності, додавати нові властивості і методи. Набір класів, які пов'язані між собою відношенням наслідування, називають ієрархією.
- Поліморфізм — це явище, при якому для функції (методу) з одним і тим самим ім'ям відповідає різна програмна реалізація в залежності від того, в якому контексті вона викликається (об'єкт якого класу викликається, або з якими параметрами).
Синтаксис[ред.]
Класи оголошуються за допомогою ключового слова class, і синтаксис має наступний формат:
class ім’я_класу { специфікатор_доступу_1: член_класу1; специфікатор_доступу_2: член_класу2; ... } імена_об’єктів;