Перейти к содержанию

🗒 Задача

Скопируй класс из предыдущей задачи и измени его название для избегания конфликтов.

На его основе создай экземпляр. Для поля с названием компании значение по умолчанию должно быть null.

Дополни класс методом, который будет печатать информацию о контакте сообщением в одном println() и без использования многострочного ввода такого типа (пример):

  • Имя: Ростислав

  • Номер: 89123456789

  • Компания: Reddit

Вместо null значения, в консоль должна выводиться строка <не указано>.

❌ Ошибки

✏️ Комментарии

Это плохая идея, после первого вызова printDirectory() ты перезаписываешь поле company на значение "<не указано>", и теперь не понятно - это компания так называется или оно и правда не указано.
В дальнейшем если решишь расширять логику приложения, например, вывести все контакты в которых не указана компания, столкнешься с проблемой.
Лучше при печати проверять поле не меняя, попробуй оператор elvis ( ?: )
отсутствует форматирование. пустые строки, отсутствие отступов
все поля лучше делать скрытыми по единому принципу. тут нет необходимости оставлять одно поле публичным. потому что в условии сказано отправлять null при инициализации
чем обуcловлен тут var?)
сам нулябельный объект и поле внутри него это разные вещи. ты можешь условно все поля проинициализировать null, но от этого объект не станет null. поэтому эта проверка тут лишняя
тут вопрос к неймингу. класс - это условный каркас, описывающий один конкретный экземпляр. текущее название больше подходит для списка контактов, а тут мы описываем непосредственно один контакт телефонной книги
а какой более короткий оператор выполняет ту же функцию, что и if else, но занимает всего 2 символа?)

🧾 Решение

class DirectoryEntry(
    val name: String,
    val phoneNumber: Int,
    val company: String? = null
) {
    fun printInfo() {
        println("Имя: $name\nНомер: $phoneNumber\nКомпания: ${company ?: "<не указано>"}")
    }
}

fun main() {
    val entry = DirectoryEntry("Ростислав", 891234567)
    entry.printInfo()
}