Ответ
В Android (Kotlin/Java) наполненность автобуса логичнее реализовать как свойство класса, а не объекта, если она общая для всех экземпляров (например, максимальная вместимость). Для индивидуальной наполненности каждого автобуса - это свойство объекта.
Пример:
class Bus(val maxCapacity: Int) { // свойство класса
var currentPassengers: Int = 0 // свойство объекта
fun addPassenger() {
if (currentPassengers < maxCapacity) {
currentPassengers++
}
}
}
maxCapacity может быть одинаков для всех автобусов (статическое свойство), а currentPassengers - уникально для каждого экземпляра.
Ответ 18+ 🔞
Э, слушай, тут один чувак пытался в Android с автобусами разобраться, и у него, бля, каша в голове получилась. Ну, я ему сейчас всё по полочкам разложу, чтоб понятно было, какого хуя.
Вот смотри, есть у тебя класс Bus. Представь, что это как чертёж, по которому автобусы штампуют. Так вот, если у всех твоих автобусов максимальная вместимость одинаковая — скажем, все они на 50 мест, — то это, ёпта, свойство самого чертежа, то есть класса. Зачем каждому новому автобусу в память свою копию этой цифры таскать? Овердохуища памяти потратишь на ерунду. Это и есть val maxCapacity: Int в примере — оно одно на всех, общее.
А теперь самое интересное. Текущая наполненность — это пиздец какой индивидуальный показатель. Один автобус может быть пустой, как твои карманы после зарплаты, а другой — забит битком, как маршрутка в час пик. Вот это вот var currentPassengers: Int = 0 — это уже свойство конкретного, живого, ебучего объекта. У каждого экземпляра Bus будет своя собственная переменная currentPassengers, и они друг про друга нихуя не знают.
Смотри на код, который тебе дали:
class Bus(val maxCapacity: Int) { // свойство класса
var currentPassengers: Int = 0 // свойство объекта
fun addPassenger() {
if (currentPassengers < maxCapacity) {
currentPassengers++
}
}
}
Вот метод addPassenger() — он проверяет условие. currentPassengers < maxCapacity. Видишь? Он берёт своё текущее количество пассажиров и сравнивает с общим максимумом. Если места ещё есть — добавляет одного. Всё, бля, логично и просто, как два пальца об асфальт.
Главное — не перепутай. Если сделаешь maxCapacity тоже свойством объекта, то это будет мудя чистой воды. Представь, что на каждом автобусе табличку с максимальной вместимостью заново печатают, хотя она у всех одинаковая. Зачем? Терпения ноль, ебать, когда так делают.
Короче, запомни: что общее для всех — выноси в свойства класса (или делай companion object). Что уникальное для каждой единицы — оставляй свойством объекта. И тогда у тебя не будет автобуса, который, бля, вмещает 50 человек, а в него уже 60 набилось, потому что с логикой ты обосрался.