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

🗒 Задача

Создай класс, описывающий пользователя, который хранит поля логин и пароль.

Пароль не должен быть виден в теле главной функции, но должен быть способ проверить, что пароль введен верно. Функция валидации должна принимать строку и возвращать результат проверки (и только его – без распечатки или генерации других строк).

Выведи информацию о корректности введенного пароля.

❌ Ошибки

  • не делают все поля класса приватными

  • из метода проверки пароля возвращают строку или печатают результат внутри

  • хардкодят в классе логин и пароль

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

Отлично, только давай сделаем поле приватным, чтобы избежать несанкционированного доступа к нему извне класса. Это будет соответствовать лучшим практикам безопасности и инкапсуляции.
Отлично! Можно еще использовать более короткую форму без return, сразу возвращая результат сравнения через знак `=`
Давай сделаем чтобы метод возвращал Boolean, а print делать в main(), так метод станет более универсальным. Это упомянуто в ТЗ.
Нужно понимать, что класс – это всего лишь шаблон/чертеж для будущих объектов. Он не может хранить пароль какого-то конкретного пользователя. Но может иметь публичный метод, который будет будет сравнивать пароль созданного пользователя с паролем, который мы передадим в этот метод.

Предлагаю создавать пользователя, передавая данные для будущего объекта через основной конструктор.
А как нам создать пользователя с другими логином и паролем?
Хорошо, а можно еще объединить вместе `return` и `when` и обойтись без создания дополнительной переменной.

🧾 Решение

class User11(private val login: String, private val password: String) {

    fun getValidate(enter: String): Boolean {
        return enter == password
    }
}

fun main() {

    val user = User11("логин", "123pass")

    println("Корректность пароля: ${user.getValidate("11yyy")}")

}