В чем разница между классом и объектом в ООП

«В чем разница между классом и объектом в ООП» — вопрос из категории ООП, который задают на 22% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Класс и объект — это фундаментальные концепции объектно-ориентированного программирования (ООП), где класс является чертежом, а объект — реальным экземпляром, созданным по этому чертежу.

Класс (Class)

  • Что это: Шаблон или абстрактное описание для создания объектов. Он определяет набор атрибутов (переменных) и методов (функций), которые будут у всех объектов этого класса.
  • В памяти: Сам по себе класс не занимает память под данные во время выполнения программы (только для своего определения).
  • Пример: Чертеж автомобиля, который описывает, что у любого автомобиля есть цвет, модель и способность ехать.

Объект (Object / Instance)

  • Что это: Конкретный экземпляр класса, существующий в памяти. У каждого объекта есть собственное состояние (значения его атрибутов), но он использует методы, определенные в классе.
  • В памяти: Занимает реальное место в оперативной памяти.
  • Пример: Красный автомобиль Tesla Model S (car1) и синий автомобиль BMW X5 (car2). Оба являются объектами класса Car, но имеют разные значения атрибутов.

Пример на Python:

# 1. Определение класса (чертеж)
class Car:
    # Конструктор для инициализации атрибутов объекта
    def __init__(self, model, color):
        self.model = model  # Атрибут объекта
        self.color = color  # Атрибут объекта

    # Метод, общий для всех объектов класса
    def drive(self):
        print(f"The {self.color} {self.model} is driving.")

# 2. Создание объектов (экземпляров) класса
car1 = Car("Tesla Model S", "red")
car2 = Car("BMW X5", "blue")

# 3. Использование объектов
print(car1.model)  # Вывод: Tesla Model S
car2.drive()       # Вывод: The blue BMW X5 is driving.
Характеристика Класс Объект
Сущность Логическая (шаблон) Физическая (экземпляр)
Память Не выделяется (в runtime) Выделяется в памяти
Создание Объявляется один раз Создается многократно
Аналогия Рецепт блюда Готовое блюдо