В коде все прописал верно, задача решена, но я не понял как сумма сложилась? прописал комменты
public class Solution {
public static void main(String[] args) {
Apple apple = new Apple();
apple.addPrice(50); // тут создали первый объект со значением переменной 50, т.е. по методу addPrice получается 50 + 0 = 50)
Apple apple2 = new Apple();
apple2.addPrice(100);// тут создали второй объект со значением переменной 100, по методу addPrice получается 100+ 0 = 100)
System.out.println("Стоимость яблок " + Apple.applesPrice); // и вот тут начинается подсчет который мне не понятен, Apple.applesPrice эта переменная из класса Apple, она сначала = 50, изза первого объекта, потом без каких либо сохранений, сразу = 100, почему эти значения складываться? ведь метод main их только по очереди вызывает и все, а в Apple статичная applesPrice всегда изначально =0)
}
public static class Apple {
public static int applesPrice = 0;
public static void addPrice(int applesPrice) {
//напишите тут ваш код
Apple.applesPrice = applesPrice + Apple.applesPrice; // вот тут мы решаем, подставленное значение переменной int applesPrice (сначала 50, потом 100) + Apple.applesPrice (который равен нулю)
}
}
}
Роман
24 уровень
Не могу понять как яблоки сложились, объясните пожалуйста
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
IceBergMaster
23 ноября 2019, 12:43решение
Чем отличается статическое поле от обычного?
"статичная applesPrice всегда изначально =0" - изначально по отношению к чему, к началу работы программы? - тогда, будет 0, дальше 50, дальше 150.
"тут создали первый объект со значением переменной 50" - нет, это вызов метода который добавляет число к полю applesPrice
+2
Kirill
23 ноября 2019, 12:43полезный
Все просто, статическая переменная она своего рода глобальная переменная т.е она доступна всему классу. Все выходящие экземпляры объекта из этого класса, будут обращаться к одной и той же переменной..
+1