Здесь нельзя публиковать ответ, поэтому опишу вопрос своими словами:
У нас описана переменная age первой строкой в классе Person и она равна 20.
Затем у нас описывается метод: и тут становится не понятно что к чему:
1. Параметр метода: int age (эта переменная совсем новая и никак не относится к предыдущим age, на сколько я понял);
2. Ключевое уравнение: age = age + 20.
Вопрос: если мы обозначим первую age как переменную класса, то получится 20 = age + 20. Не понятно почему это правильно?
Ведь если мы обозначим переменной класса вторую age, то получится (в моем понимании) логичное решение: age = 20 + 20.
Albrick
10 уровень
Не понял логику вычисления...
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергеев ВикторMaster
21 февраля 2018, 11:03
1. да
2.1. не надо переносить переменные из объекта в класс, это характеристика объекта а не класса.
2.2. "то получится (в моем понимании) логичное решение: age = 20 + 20" метод должен на 20 складывать с 20, а к возрасту прибавить 20
0
Albrick
21 февраля 2018, 11:52
Я правильно понял:
(1)this.age = (2)age + (3)20
1 мы привязали age (через this) к возрасту Person, который описали выше? Потому что без this программа видит ее как параметр метода (это я так понял);
2 это переменная метода(параметр)? А чему она равна? Вот это не совсем понимаю... То есть это уравнение и есть она, но я что-то не соображу.
0
Сергеев ВикторMaster
21 февраля 2018, 12:03решение
1. this дословно переводиться как "этот".
этот.age = age + 20
так что да, через this вы привязали. Если выразиться правильнее, через this вы указали не на параметр метода, а на параметр объекта.
2. да это переменная метода, она равна входящем значению. Т.е. при вызове adjustAge(35) она равно 35, при вызове adjustAge(7754) она равна 7754
+4
Albrick
21 февраля 2018, 12:23
А, кажется теперь понял! Входящее значение это то, которое мы описали в main:
adjustAge(person.age)
То есть изначально 20, как описано в объекте Person...
И соотвественно метод прибавляет к нему 20.
Спасибо! Совсем запутался в этом коде.
0