public class Main {
public static void main(String[] args) {
Apple apple = new Apple();
Apple.addPrice(50);
// 1. Записываем значение 50 в переменную int applesPrice
// (сюда: public static void addPrice(int applesPrice)),
// Теперь int applesPrice == 50
Apple apple2 = new Apple();
Apple.addPrice(100);
// 3. Записываем в переменную int applesPrice значение == 100
// (сюда:??? public static void addPrice(int applesPrice))
// int applesPrice сейчас == 50, прибавляем 100??? == 150 ???
System.out.println("Стоимость яблок " + Apple.applesPrice);
}
public static class Apple {
public static int applesPrice = 0; // 2. Значение стало == 50. 4. Значение стало == 100
public static void addPrice(int applesPrice) {
Apple.applesPrice = Apple.applesPrice + applesPrice; // 5. 0 + 150 == 150 ???
}
}
}
kopetan kopetan
4 уровень
Сломал голову... Прокомментировал код, посмотрите пожалуйста, где я понял не правильно?
Обсуждается
Комментарии (11)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
trockaya.anzhelika
10 июня 2021, 19:18
1. вызывается метод public static void addPrice(50) , который увеличивает applesPrice на 50
2. applesPrice = 0+50=50
3. вызывается метод public static void addPrice(100) , который увеличивает applesPrice на 100
4. applesPrice = 50+100=150
0
kopetan kopetan
11 июня 2021, 07:18
Спасибо! Но если applesPrice == 150, зачем вот эта конструкция? - Apple.applesPrice = Apple.applesPrice + applesPrice; Ведь applesPrice и так уже 150? Простите за глупые вопросы, я хочу разобраться...
0
kopetan kopetan
11 июня 2021, 07:44
Вот так это работает, правильно?
0
trockaya.anzhelika
11 июня 2021, 12:51
2. Метод addPrice записывает в переменную Apple.allPrice значение (Apple.allPrice+50), другими словами: увеличивает значение allPrice на int applesPrice=50.
Объекты, можно не создавать, они ни на что не влияют.
0
Павел
10 июня 2021, 18:52
В твоём четвертом комментарии значение стало не 100, а 150, потому что ты прибавил 100 к уже записанному в переменную значению 50.
0
kopetan kopetan
11 июня 2021, 07:22
Благодарю вас! Но выходит в переменной applesPrice хранится значение 150, тогда вот эта операция зачем? - Apple.applesPrice + applesPrice... Я пытаюсь разобраться, но что-то от меня ускользает...
0
Павел
15 июня 2021, 14:34
Чтобы прибавить к статической переменной applesPrice класса Apple (к ней обращаешься с помощью Apple.applesPrice) значение аргумента applesPrice, переданного в функцию. Несмотря на одинаковые названия, эти две переменные, вообще говоря, разные.
0
kavasak119999 Backend Developer
10 июня 2021, 17:37
Всё правильно, или есть вопросы?
Только тут не
а:
0
kopetan kopetan
11 июня 2021, 07:20
Я изменил переменные чтобы не путаться, правильно принимаю, что это работает вот так:
0
kavasak119999 Backend Developer
11 июня 2021, 16:14
Все верно, только в 4 не "записываем" а "добавляем"
0
kopetan kopetan
15 июня 2021, 07:07
Спасибо!
0