Почему не было принято решение, когда я убрал "static" из определения метода addPrice? В условии не сказано, что метод должен быть статическим.
Также, непонятно, почему метод должен быть статическим, если вызывается для объекта, а не для класса?
Roman
35 уровень
Почему public static void addPrice(int applesPrice) должен быть именно static?
Решен
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Артем Divertitto Senior Android-разработчи в United Tech Master
29 декабря 2019, 15:15
В данном случае не важно, метод статический или нет. В данной задаче нас учат как работать с статическими переменными.
Но изначально метод сделан статик, возможно для валидации.
0
Roman
29 декабря 2019, 19:10
А в общем случае, предпочтительнее использовать static методы, где это возможно, или "обычные"? Например, в этой задаче необходимости именно в статическом методе нет, т.к. метод вызывается через объекты. Как будет сделать правильнее? Или это не имеет значения?
0
Артем Divertitto Senior Android-разработчи в United Tech Master
29 декабря 2019, 22:04решение
Ну смотри, статические методы идеально использовать в утильных классах.
Например у тебя есть класс МатематическиеФормулы, и тебе нужно посчитать квадрат числа, ты создаешь метод квадратЧисла, который тебе вернет квадрат числа, и что бы каждый раз не создавать обьект класса, ты делаешь метод static, и можешь его вызывать без создания экемпляра класса.
+3
edvardpage
29 декабря 2019, 11:27
Мне кажется потому-что класс статический, может я не прав, так-как сам только учусь
+1
Roman
29 декабря 2019, 11:42
Кстати, Вы натолкнули на мысль. Это может быть сделано для возможности проверки, т.к. снаружи нельзя создавать экземпляры нестатических вложенных классов. Но хотелось бы узнать, чем руководствовались разработчики задачи. Не хотелось бы упустить на начальном этапе что-то важное.
0
IceBergMaster
29 декабря 2019, 11:20
"В условии не сказано, что метод должен быть статическим." - потому что объявление метода и так прописано по умолчанию.
Метод может вызываться как угодно, хоть с объекта, хоть с класса.
0
Roman
29 декабря 2019, 11:34
Меня интересует как делать "правильно". Ну или как считается более правильным. Если метод планируется вызывать только для объектов, зачем его делать статическим?
0
IceBergMaster
29 декабря 2019, 11:36
А почему его планируется использовать только для объектов?
Этот метод изменяет статическую переменную, он вообще никак не связан с состоянием объекта, вызывая этот метод из любого объекта, никакой разницы не будет.
0
Roman
29 декабря 2019, 11:40
Исходя из того же "так прописано по умолчанию". В методе main он вызывается только для объектов. Если бы он вызывался для класса, вопросов бы не было.
Я этот вопрос создал для администрации сайта.
0