Что такое класс в объектно-ориентированном программировании (ООП)?

«Что такое класс в объектно-ориентированном программировании (ООП)?» — вопрос из категории ООП, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Класс в ООП — это абстрактный шаблон, «чертеж» или тип данных, который определяет:

  1. Структуру (состояние) через поля (атрибуты, свойства).
  2. Поведение через методы (функции).
  3. Правила создания экземпляров через конструкторы.

Класс является основной конструкцией для реализации принципов ООП: инкапсуляции, наследования, полиморфизма и абстракции.

Пример класса на Java:

// Объявление класса 'Car'
public class Car {
    // Поля (состояние объекта) - обычно private (инкапсуляция)
    private String model;
    private int currentSpeed;
    private boolean engineOn;

    // Конструктор - метод для создания экземпляра (объекта)
    public Car(String model) {
        this.model = model;
        this.currentSpeed = 0;
        this.engineOn = false;
    }

    // Методы (поведение объекта)
    public void startEngine() {
        this.engineOn = true;
        System.out.println("Engine of " + model + " started.");
    }

    public void accelerate(int increment) {
        if (engineOn) {
            this.currentSpeed += increment;
        }
    }

    // Геттер (accessor) - обеспечивает контролируемый доступ к полю
    public int getCurrentSpeed() {
        return currentSpeed;
    }
}

// Создание объекта (экземпляра класса)
Car myCar = new Car("Toyota Camry"); // Вызов конструктора
myCar.startEngine();                 // Вызов метода
myCar.accelerate(20);
System.out.println(myCar.getCurrentSpeed()); // 20

Ключевая идея: Класс описывает общие характеристики для группы объектов. Объект — это конкретный экземпляр класса, созданный в runtime, со своим собственным состоянием (значениями полей).