package com.javarush.task.task04.task0401;
/*
Мне не подходит этот возраст…
*/
public class Solution {
public static void main(String[] args) {
Person person = new Person(); // создали объект с именем person, типа Person
System.out.println("Age is: " + person.age); //обращаемся к строке №16 и берем значение int класса, т.е: Age is: 20;
person.adjustAge(person.age); //вызываем метод adjustAge и вносим в него person.age(строку №16), т.е строка №19 это обращение к age (строка №16, чтобы ей присвоить новое значение)= age(только что объявленная age из №18, она равна нулю) + 20 = 20; Дальше в методе вывожу Age in adjustAge() is : 20;
System.out.println("Adjusted age is: " + person.age); //вывожу на экран Adjusted age is : 0( обращение к строке 16, т.к МЕТОД adjustAge УЖЕ ОТРАБОТАЛ И ОБРАЩЕНИЕ БУДЕТ К ПЕРЕМЕННОЙ КЛАССА, а она в свою очередь была this.age=age(0)+20;
}
public static class Person {
public int age = 20;
public void adjustAge(int age) {
this.age = age + 20; //№16 = №18(0)+20;
System.out.println("Age in adjustAge() is: " + age); //age из №18 = 0 ;
}
}
}
Тк задача решена, код скрином вот здесь: https://ibb.co/x8Tj4k0nescafe
30 уровень
объясните , все как я понял пишу под //
Архивный
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
nescafe
22 сентября 2020, 07:11
Мне кажется вот person.adjustAge(person.age) и дальнейшая компиляций мне не совсем ясна
0
hidden #2322530
22 сентября 2020, 07:06
выложи весь код. а не кусок
0
nescafe
22 сентября 2020, 07:07
https://ibb.co/x8Tj4k0
0
hidden #2322530
22 сентября 2020, 07:15полезный
изначально у тебя person.age = 20, поэтому здесь будет выведено 20:
далее ты вызываешь метод
что делает этот метод. этот метод берет значение из аргумента (в данном случае мы передали ему person.age) и увеличивает его на 20. после этого, полученное значение он сохраняет в поле age.
так образом, если вначале было person.age = 20, к нему прибавляется еще 20, и person.age становится равным 40
+1
nescafe
22 сентября 2020, 07:18
Все понял . person.adjustAge(person.age) , я вношу эту 20 в public void adjustAge(20 - СЮДА)
затем this.age = age(20 из строки №16) + 20 = 40 (ПРОИЗОШЛО ПРОСВОЕНИЕ СТРОКИ №16 значения 40)
System.out.println("Age in adjustAge() is : +age (= 20 из person.adjustAge(person.age) или строки №18);
System.out.prinln("Adjusted age is : " + person,age (уже измененное значение на 40)
Так?
0