Сама задача очень легкая но то как она написана мозги уже закипели. Объясните мне пожалуйста во первых зачем здесь модификатор public когда он в данной задаче здесь лишний? во вторых здесь написано static, когда мы пишем этот модификатор то не нужно создавать объект и доступ к нему можно получить только через класс, как тогда он работает? не вижу обращения класса к статическому методу. Я конечно понимаю что мы создали метод и просто вызвали его но зачем смысл этого. Вот если-бы написали так я бы еще понял.
System.out.println(Box.sqr(5));
public class Box {
static int sqr(int a){
return a;
}
} Потому-что здесь сразу становится понятно зачем нужен static потому-то без него мне бы пришлось создавать объект в данном случаи.
Когда углубляюсь в это все сильнее такое чувство будто голова сейчас лопнет и все становится еще запутанней.
Тимур
6 уровень
Объясните зачем в этой задаче нужен модификатор static и public? Как по мне они здесь лишние.
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
25 января 2020, 21:47решение
На данном этапе ты должен пока принимать как есть. Потом ты поймешь отчего.
Представь что человек начинает учить к пример английский язык, а до этого ни разу его не учил.
Ему говорят, повтори "My name is John", а он такой: слушайте, ну какой смысл, имя...сейчас же в век интернетов лучше ник. А если мы говорим про официальный подход , ну тогда почему не Jonh Morgan III Dudely. И почему My если можно вместо my name использовать что то другое и тд и тп.
На данном этапе от этого человека просто требуется повторить. Потом поймет.
Но если ты уж любишь задать вопросы раньше времени ок.
Метод публичный - поскольку он предназначен для вызова другими методами, это часть апи/интерфейса. Мы же не пишем код который в мусор сразу идет. Это маленький класс с маленьким методом, который могут использовать другие классы. А для этого метод должен быть публичным, чтобы его можно было вызвать с другого класса.
Метод статический, поскольку это утильный метод утильного класса, он не имеет состояния и не требует определенного состояния объекта. Если бы это был класс из серии Human, Cat и тд, там уже можно думать. А утильные классы /методы, то есть которые используются чтобы получить на вход аргумент и выдать какой-то результат и не зависят от внешних переменных состояний, делают статическими.
Помимо всего прочего, как минимум это дает небольшой выигрыш в плане производительности тоже, когда метод принадлежит классу. Но про это можешь вообще не думать.
Пока просто принимай как есть, делай задачи, когда пройдешь хотя бы до 13-15 уровня и азы ООП, то там уже станет гораздо яснее, не в последнюю очередь поскольку решишь еще пару сотен задач к тому времени.
+5