Пожалуйста объясните мне, почему без this выводит 20, 40, 20, а с this 20, 20, 40. Пожалуйста объясните мне пожалуйста ( Я сам не догодался, хоть и проходил лекцию про this
Abakar Kamalov
9 уровень
Очень нужна помощь знающего человека
Архивный
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дмитрий
9 января 2020, 11:41
Рассмотрим выполнение программы по порядку. Java читает сверху вниз. Рассмотрим выполнение первого вывода на экран. System.out.println("Age is: " + person.age); person.age это обращение к классу Person. В классе Person age = 20. Это первое значение в выводе.
Второй вывод на экран. Здесь происходит вызов метода adjustAge в котором значение this.age = 40. Но на экран выводится 20, потому что в строке System.out.println("Age in adjustAge() is: " + age), age = 20.
Третий вывод на экран. Происходит обращение к классу, но переменная в классе уже посчитана. Поэтому значение 40.
+1
МИХАИЛ
4 января 2020, 17:56
спасибо за вопрос ещё раз перечитал лекцию 1 и понял так что переменная Age класса adjustAge (строка 19) закрывает собой переменную Age класса Person (строка 16).Без tihs мы обращаемся к переменной метода (строка 19),а нам нужно обратится к переменной класса (строка 16) .
0
Ислам
2 января 2020, 22:10решение
https://javarush.com/groups/posts/608-kljuchevoe-slovo-this-v-primerakh
+6