Цена яблок

  • 4
  • Недоступна
На аграрной планете Эплсиид главный заработок подавляющего большинства обитателей — продажа лучших в этом уголке Галактики яблок торговым кораблям Федерации и заезжим туристам. Давайте вступим в товарно-денежные отношения с абстрактным покупателем с учётом, что сейчас конец сезона и надо как-то пережить зиму: напишем метод, повышающий цену на яблоки!
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (291)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис
Уровень 14, Пермь, Россия
27 октября 2021, 12:28
Понял какие откуда значения берутся, но не понял почему в строке 20
Apple.applesPrice = Apple.applesPrice + applesPrice;
значение переменной applesPrice равно 150, хотя изначально в эту переменную передавалось значение 50 (строка 10), а затем 100 (строка 12). Нигде ведь нет метода сложения этого самого applesPrice. Возможно оно накапливает значения, но нигде это не было написано
Екатерина Лисняк
Уровень 4, Санкт-Петербург, Россия
17 мая 2021, 21:36
Короче, я поняла: сначала на листочке пишем само уравнение, которое нам посчитает конечную сумму: 0 = 0 +то, что мы передаем в параметре addPrice где 0 - это начальная стоимость, заявленная в классе Apple (строка 17) а "то, что мы передаем в параметре addPrice" - параметр в скобках из строки 19. чтобы нам увеличить 0, нам надо обратитсья к переменной applesPrice, которая в классе Apple. Это делается с помощью явного указания имени класса Apple.applesPrice Запишем уравнение на джаве теперь: Apple.applesPrice = Apple.applesPrice + applesPrice;
Александр
Уровень 5, Москва, Россия
22 марта 2021, 21:17
Очень удобно разбираться с кодом кода ты выделяешь какой то объект или переменную то подсвечивается где эта переменная еще задействована и можешь понять, что к чему относиться или обращается. Мне это помогает )
BambucH
Уровень 5, Москва, Россия
4 марта 2021, 09:37
Честно говоря практически все комментарии прочитал, но всё равно не могу догнать как это работает. Программа сама отталкивается от слов или она понимает что нужно делать ( типо посчитать яблоки (без моего ведома)). Крч перечитал лекцию и всё равно ничего не понял. Нужна самая лучшая пояснительная бригада. ( от А до Я)
Павел Соловьёв докер - механизатор в Порт
15 марта 2021, 22:59
пробуйте пошагово решать задачу , смотреть что происходит при том или ином варианте выполнения , используйте сочетание клавиш для более быстрого компилирования shift+ctrl+f10 вместо Run . я сидел в 1:30 с двумя банками жигулей и вроде все понял (: удачи
BambucH
Уровень 5, Москва, Россия
16 марта 2021, 09:21
Приму на заматеку. Снова попробую
JaVu
Уровень 4, Саратов
6 апреля, 10:53
Так, тогда я за жигулями..
Vadim
Уровень 18, Уфа, Россия
17 января 2021, 18:19
Все дело в том, что переменная класса Apple и параметр метода addPrice имеют одинаковое имя, поэтому чтобы посчитать именно статическую переменную класса Apple.applesPrice, надо в методе явно указать класс этой переменной, поэтому Apple.applesPrice = Apple.applesPrice + applesPrice, где Apple.applesPrice- это сам счетчик , а applesPrice - это число , которое подается на вход метода. Для лучшего понимания можно заменить имя параметра applesPrice на более простое.
Тимур Акматов
Уровень 18, Бишкек, Кыргызстан
2 февраля 2021, 16:15
Эта задачка с подвохом, почему тогда нельзя использовать обращение к переменной класса словом this?
Vadim
Уровень 18, Уфа, Россия
2 февраля 2021, 19:33
К статической переменной класса обращаются через имя класса, через this. обращаются к экземпляру класса.
Vasily
Уровень 14, Москва
19 марта 2021, 18:53
Я именно так и сделал (заменил имя) :) Но спасибо тебе за объяснение! Буду знать, что можно и так.
Андрей
Уровень 12
13 января 2021, 19:33
Как говорится: "Без сто грамм не обойдёшься!".
Dmitry economic security
27 декабря 2020, 18:17
Apple.applesPrice+=applesPrice;
Super Style
Уровень 7, Москва
8 декабря 2020, 20:06
кол-во попыток 35....
Дмитрий
Уровень 4, Россия
7 марта 2021, 15:17
команда JR предлагаю ввести дополнительное поощрение за упорство😆
Дмитрий
Уровень 9
24 ноября 2020, 05:11
Как это работает? (Пытаюсь разжевать сам себе работу программы.Если не верно понял, то помогите?) 1) В калассе Аpple назначается статич. преременная int applePrice, к которой будем суммировать партии яблок; 2) Запускаем функцию addPrise, а в аргумент ей кидаем статич. переменную. Функция должна сделать весь расчет. но так как переменная сатична. ??? Что делать???This не работает, а тот кто писал лекцию идиот, даже не потрудился обьяснить эту ситуацию... 3) Методом проб и ошибок, а так же с помощью комментариев образовалась вот такая конструкция в функции Apple.applesPrise=Apple.applesPrise+apples.Price; Как оно работает я вот до сих пор не пойму. К нулю мы прибавляем addPrice и получаем 50, но как происходит вторая итерация прибавление 100 к 50??? Загадка? 4)Метод main печатает нам результат подсчета.
Konstantin Stepanyuk
Уровень 6, Красноярск
1 декабря 2020, 10:58
2- Apple.addPrice(яблоки) - вызываете метод, который void - то есть он ничего не возвращает, а только присваивает переменной Apple.applePrice значение. и делать это он будет столько раз сколько будет вызван это метод, в первый раз он присвоил 50 в соответствии с формулой, когда вызвали метод второй раз, у переменной applePrice значение уже не 0 =) а автор лекций на джавараш это Магистр Йода родной язык которого китайский
GLEB
Уровень 8
7 ноября 2020, 15:28
Apple.applesPrice = Apple.applesPrice + applesPrice; Kak eto rabotaet? aples price eto chto, summa vseh ego znachenii, ili kak?
Dmitry
Уровень 31, Хабаровск, Россия
13 ноября 2020, 00:19
В данной задаче applesPrice - статическая переменная, которая просто суммирует цены всех яблок, для которых вы вызываете метод addPrice. Вообще, у класса Apple могут быть: - non-static переменные (в этой задаче их нет). Их смысл в том, что они свои для каждого объекта (экземпляра класса). Например, размер конкретного яблака, его цвет, сорт и т.п. К нему вы можете обратиться изнутри класса через слово this. Например:
this.color = "red";
- static переменные. Их смысл в том, что они относятся не к конкретному экземпляру, а к классу в целом. Поэтому в статиках можно хранить какие-то общие характеристики. В данном случае, количество яблок. К static переменным вы можете обратиться через имя класса, например:
Apple.applesPrice = Apple.applesPrice + applesPrice;
или то же самое чуть более компактно
Apple.applesPrice += applesPrice;
Вообще и к статикам и к нестатикам обычно можно обратиться просто по имени без всяких ключевых слов, но в нашей задаче подвох - аргумент, передаваемый методу называется точно также, как staic переменная applesPrice. Поэтому, если не обратиться через имя класса Apple, то машина просто не поймет, что вы имеете ввиду static.
Елена
Уровень 22, Киев
1 марта 2021, 20:23
Спасибо, только после вашего объяснения ДОШЛОООО.🙏🙏🙏😬
Стас
Уровень 26, Санкт-Петербург, Россия
19 сентября 2021, 09:36
Dmitry, спасибо вам огромное. Голову сломал как из статического метода изменить статическую переменную без приставки this. (которая не работает в статических методах).
Dmitry
Уровень 31, Хабаровск, Россия
22 сентября 2021, 04:45
Да не за что! Рад, что удалось помочь.
Роман
Уровень 8, Сыктывкар, Россия
26 октября 2021, 08:38
До твоего объяснения с одинаковым именем класса все было понятно, но ничего не работало. После твоего объяснения все получилось. Попробовал тупо изменить название переменной applesPrice метода addPrice на рандомную и обратиться из метода addPrice к applesPrice класса Apple, как сразу все получилось и посчиталось. Спасибо мил человек.