Будет ли наполненность автобуса свойством объекта

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

Ответ

В Android (Kotlin/Java) наполненность автобуса логичнее реализовать как свойство класса, а не объекта, если она общая для всех экземпляров (например, максимальная вместимость). Для индивидуальной наполненности каждого автобуса - это свойство объекта.

Пример:

class Bus(val maxCapacity: Int) { // свойство класса
    var currentPassengers: Int = 0 // свойство объекта

    fun addPassenger() {
        if (currentPassengers < maxCapacity) {
            currentPassengers++
        }
    }
}

maxCapacity может быть одинаков для всех автобусов (статическое свойство), а currentPassengers - уникально для каждого экземпляра.