package com.javarush.task.task04.task0401;
/*
Мне не подходит этот возраст…
*/
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);
}
}
}
AntoXa
8 уровень
Объясните пожалуйста почему вывод получился в такой последовательности?
Архивный
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Константин Курандин
8 ноября 2018, 07:58
1) В строке 10 выводится на экран "Age is: " + person.age", т.е. тут он обращается к переменной person.age, которая = 20 на данный момент.
2) В строке 11 он обращается к методу adjustAge(person.age);. person.age в данный момент так же = 20.
this.age = age + 20; (тут к переменной age, которая объявлена в классе Person(потому что приставка this) добавляется 20 и переменная age, которая объявлена в классе Person становится = 40)
System.out.println("Age in adjustAge() is: " + age); - здесь выводится на экран число 20, потому что обращаются к переменной метода, которая как мы помним равна 20.
Если бы код был таким: System.out.println("Age in adjustAge() is: " + this.age); - тогда был бы вывод 40.
3) В 12 строке мы уже выводим переменную, которую изменил метод выше.
+10
Alex MExpert
8 ноября 2018, 03:24
в 11 строке вызывается метод adjustAge(int age) который выводит вторую строку
в 12 строке выводится последняя строка.
вроде все логично, в чем затруднения?
+2
AntoXa
8 ноября 2018, 20:08
Все ясно спасибо
0
progr
2 июня 2019, 05:07
а как ты это понял? может ты по лучше объяснишь)
0