Подскажите , как в этом случае работает программа ?
решил и не понял что произошло.
Валерий Глушков
8 уровень
Как работает
Архивный
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
BadgerExpert
5 января 2020, 21:43
Должно помочь разъяснить https://javarush.com/groups/posts/608-kljuchevoe-slovo-this-v-primerakh
0
ГоффMaster
5 января 2020, 20:44
Какая программа?
0
Валерий Глушков
5 января 2020, 21:01
https://javarush.com/tasks/com.javarush.task.task04.task0401
0
ГоффMaster
5 января 2020, 21:09
Вставь, пожалуйста, в вопрос, сюда. По ссылке я увижу своё решение, а не твоё.
0
Валерий Глушков
5 января 2020, 21:34
public class Solution {
public static void main(String[] args) {
Person person = new Person();
System.out.println("Age is: " + person.age);
person.adjustAge(person.age);
System.out.println("Adjusted age is: " + person.age);
}
public static class Person {
public int age = 20;
public void adjustAge(int age) {
this.age = age + 20;
System.out.println("Age in adjustAge() is: " + age);
}
}
}
0
ГоффMaster
5 января 2020, 21:43решение
У тебя в мэйне первым делом создаётся новый объект person класса Person. В классе Person расписаны две вещи:
1) переменная (иногда называют полем) public int age, которая сразу же инициализируется значением 20 и
2) метод public void adjustAge(int age), который у объекта, к которому этот метод применяется изменяет переменную age на значение, переданное в метод как параметр плюс 20. this.age - это переменная age объекта person. просто age внутри этого метода - это то значение, которое передали через параметр при вызове. this.age = age + 20; значение переданного параметра увеличивает на 20 и закидывает в переменную age объекта person.
При вызове в качестве параметра передаётся значение person.age, который при инициализации объекта person получил значение 20.
+5
Валерий Глушков
5 января 2020, 21:59
спасибо
0