Цена яблок

  • 4
  • Недоступна
На аграрной планете Эплсиид главный заработок подавляющего большинства обитателей — продажа лучших в этом уголке Галактики яблок торговым кораблям Федерации и заезжим туристам. Давайте вступим в товарно-денежные отношения с абстрактным покупателем с учётом, что сейчас конец сезона и надо как-то пережить зиму: напишем метод, повышающий цену на яблоки!
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (286)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Екатерина Лисняк
Уровень 4, Санкт-Петербург, Россия
17 мая, 21:36
Короче, я поняла: сначала на листочке пишем само уравнение, которое нам посчитает конечную сумму: 0 = 0 +то, что мы передаем в параметре addPrice где 0 - это начальная стоимость, заявленная в классе Apple (строка 17) а "то, что мы передаем в параметре addPrice" - параметр в скобках из строки 19. чтобы нам увеличить 0, нам надо обратитсья к переменной applesPrice, которая в классе Apple. Это делается с помощью явного указания имени класса Apple.applesPrice Запишем уравнение на джаве теперь: Apple.applesPrice = Apple.applesPrice + applesPrice;
Александр
Уровень 4, Москва, Россия
22 марта, 21:17
Очень удобно разбираться с кодом кода ты выделяешь какой то объект или переменную то подсвечивается где эта переменная еще задействована и можешь понять, что к чему относиться или обращается. Мне это помогает )
BambucH
Уровень 5, Москва, Россия
4 марта, 09:37
Честно говоря практически все комментарии прочитал, но всё равно не могу догнать как это работает. Программа сама отталкивается от слов или она понимает что нужно делать ( типо посчитать яблоки (без моего ведома)). Крч перечитал лекцию и всё равно ничего не понял. Нужна самая лучшая пояснительная бригада. ( от А до Я)
Павел Соловьёв
Уровень 5, Санкт-Петербург
15 марта, 22:59
пробуйте пошагово решать задачу , смотреть что происходит при том или ином варианте выполнения , используйте сочетание клавиш для более быстрого компилирования shift+ctrl+f10 вместо Run . я сидел в 1:30 с двумя банками жигулей и вроде все понял (: удачи
BambucH
Уровень 5, Москва, Россия
16 марта, 09:21
Приму на заматеку. Снова попробую
Vadim
Уровень 15, Уфа, Россия
17 января, 18:19
Все дело в том, что переменная класса Apple и параметр метода addPrice имеют одинаковое имя, поэтому чтобы посчитать именно статическую переменную класса Apple.applesPrice, надо в методе явно указать класс этой переменной, поэтому Apple.applesPrice = Apple.applesPrice + applesPrice, где Apple.applesPrice- это сам счетчик , а applesPrice - это число , которое подается на вход метода. Для лучшего понимания можно заменить имя параметра applesPrice на более простое.
Тимур Акматов
Уровень 10
2 февраля, 16:15
Эта задачка с подвохом, почему тогда нельзя использовать обращение к переменной класса словом this?
Vadim
Уровень 15, Уфа, Россия
2 февраля, 19:33
К статической переменной класса обращаются через имя класса, через this. обращаются к экземпляру класса.
Vasily
Уровень 5, Москва
19 марта, 18:53
Я именно так и сделал (заменил имя) :) Но спасибо тебе за объяснение! Буду знать, что можно и так.
Андрей
Уровень 10
13 января, 19:33
Как говорится: "Без сто грамм не обойдёшься!".
Dmitry economic security
27 декабря 2020, 18:17
Apple.applesPrice+=applesPrice;
Super Style
Уровень 7, Москва
8 декабря 2020, 20:06
кол-во попыток 35....
Дмитрий
Уровень 4, Россия
7 марта, 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
Уровень 5
7 ноября 2020, 15:28
Apple.applesPrice = Apple.applesPrice + applesPrice; Kak eto rabotaet? aples price eto chto, summa vseh ego znachenii, ili kak?
Dmitry
Уровень 30, Хабаровск, Россия
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.
Елена
Уровень 15, Киев
1 марта, 20:23
Спасибо, только после вашего объяснения ДОШЛОООО.🙏🙏🙏😬
Evgeny Vdovin
Уровень 8
4 ноября 2020, 21:51
Благодаря комментам решил, а уже потом сидел и разбирался почему именно так. И все таки что-то до меня дошло. Во первых this не используется если метод statiс, так что необходимо использовать имя Класса, т.е. Apple. (уберите в ИДЕЯ static и замените Apple на this и все заработает - это я так убедился). Как работает программа: Сначала создается класс, в нем applesPrice присваивается 0. Далее вызываем метод addPrice, в котором присваиваем applesPrice 50. И еще раз вызываем метод addPrice, в котором присваиваем applesPrice 100. Далее выводим в консоль "Стоимость яблок " + суммарную стоимость. Чтобы получилось 150 необходимо к исходной стоимости прибавить 50 и 100. Для этого нам надо в классе Apple изменить значение applesPrice, т.е. надо использовать Apple.applesPrice которое будет равняться заданному в main значению плюс текущему. И так. Сначала текущее значение 0. Потом 0+50=50, а потом 50+100=150. Я не пишу код, но если прочесть все что выше, то он становится понятен.