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

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

Ответ

Класс — это шаблон, чертеж или абстрактное описание, определяющее структуру (свойства/поля) и поведение (методы) будущих объектов.

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

Аналогия: Класс — это чертеж дома (планировка, материалы). Объект — это построенный по этому чертежу реальный дом с конкретным адресом и интерьером.

Пример на Swift:

// Класс — это шаблон
class Car {
    // Свойства (описание состояния)
    var color: String
    var speed: Int = 0

    // Инициализатор (конструктор)
    init(color: String) {
        self.color = color
    }

    // Метод (описание поведения)
    func accelerate(by value: Int) {
        speed += value
        print("Speed is now (speed) km/h")
    }
}

// Объекты — это конкретные экземпляры
let myCar = Car(color: "Red") // Объект 1
let yourCar = Car(color: "Blue") // Объект 2

myCar.accelerate(by: 20) // "Speed is now 20 km/h"
yourCar.accelerate(by: 10) // "Speed is now 10 km/h"

print(myCar.color) // "Red" — конкретные данные объекта
print(yourCar.color) // "Blue"

Итог: Класс определяет форму, объект — конкретное содержание.