Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите понять логику этого кода

Андрей Черниченко Профи (904), закрыт 1 год назад
Добрый день всем. Хочу разобраться, почему при вводе возраст всегда равен нулю. Вроде бы есть условие, где ТОЛЬКО при вводе отрицательного значения возраст равен нулю. Подскажите пожалуйста, как это работает?
Лучший ответ
asdfasf asdfsdf Знаток (285) 1 год назад
Судя по коду объекту student задано значение только полю name, а age оно никак не задано. student.getAge() возвращает значение неинициализированного поля age которое имеет мусорное значение, оно может быть любым и в том числе 0. Чтобы исправить после student.name = name; нужно написать student.age = age; и тогда возможно сработает код из setAge где уже по условию будет устанавливаться нужное значение.
Андрей ЧерниченкоПрофи (904) 1 год назад
Но ведь age приватный. Присвоение student.age = age не сработает в таком случае.
asdfasf asdfsdf Знаток (285) Андрей Черниченко, Поле age будет изменяться через функцию сеттер setAge вот полный код https://onlinegdb.com/EUAWb7QCQ вместо student.age = age; Нужно прописать student.setAge(age); и исправить класс student прописав в некоторых местах this.
Остальные ответы
Похожие вопросы