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);
}
}
}
Артём
4 уровень
Можете объяснить пожалуйста почему мы используем this?
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
RustiG
11 февраля 2019, 07:35
А можно уточнить почему при this.age=age+20 выводится "Age in adjustAge() is: 20", а если age=age+20 то выводится "Age in adjustAge() is: 40"?
Разве в методе this.age=age+20 будет не так this.age=20+20=40 как с переменной без this?
надеюсь понятно вопрос задал
0
Татьяна
4 февраля 2019, 16:08
https://vertex-academy.com/tutorials/ru/gettery-i-settery/
почитай лекцию по ссылке, там хорошо объясняется this в конце, буквально двумя предложениями
0
Gor Ivanov
27 ноября 2018, 14:28
В методе public void adjustAge(int age) есть переменная age типа int которую нужно в данный метод передать. У класса Person есть переменная с точно таким же именем - public int age = 20;
В какой age компилятор запишет значение, если мы напишем просто вот так age = age + 20 ?
+2
hidden #598481
27 ноября 2018, 14:26решение
this - это ссылка на объект, метод которого ты выполняешь.
Поскольку ты вызываешь метод adjustAge у объекта person (тут: person.adjustAge(person.age);),
то в данном случае this ссылается на тот же объект, что и person. Если чуть упростить, то можно сказать, что this в данном случае и есть person.
Но если создать второй объект:
и вызвать у него метод то this уже будет ссылаться на объект oneMorePerson, и т.д.
+12