Задать вопрос
@deniska_kuzmenko

Когда использовать static метода?

Не могу до конца понять когда использовать static методы а когда обычные. Можете посоветовать когда нужно объявлять метод static а когда обычным? Сразу говорю что я знаю чем они отличаются и как работают, проблема в том что я не знаю когда надо что применять.
  • Вопрос задан
  • 9762 просмотра
Подписаться 3 Оценить 3 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 5
@dmitryKovalskiy
программист средней руки
использование слова static оправдано для методов и классов, где логически отсутствует необходимость в множественных объектах. Классический пример - математические функции. Объекты класса "калькулятор" не нужны никому. Поэтому в ООП языках, как правило, класс Math и ему подобные - статичны.
Ответ написан
@matperez
К примеру есть такой класс "Человечество". У человечества есть характеристика "средний рост", она не применима к отдельному человеку. Метод рассчитывающий средний рост и саму переменную которая его хранит нужно сделать статической.

Экземпляром класса "Человечество", является отдельный человек. Отдельный человек можно иметь свой конкретный рост, вес, цвет волос и так далее, он может ходить, есть, разговаривать - вот эти методы и переменные должны быть динамическими.
Ответ написан
Комментировать
Ridzhi
@Ridzhi
На вершине пищевой цепочки
Статические методы следует использовать в случае когда у сущности нет состояния, либо оно глобально.
Ответ написан
heksen
@heksen
При частом использовании функции. Static, насколько я помню это постоянное хранение в памяти, вплоть до завершения программы.
Ответ написан
Stalker_RED
@Stalker_RED
Представим сайт с заказом пиццы. Объект-корзина, в нее добавлено несколько разных объектов-пицц с разной ценой и объект-кола. Нужно посчитать сумму заказа, мы вызываем метод корзина->получитьСумму(). Этот метод пробегается по всем товарам корзины и считает сумму.

Теперь представим что метод получитьСумму() мы ради эксперимента делаем статическим. Где ему брать данные для расчета?

Теперь представим объект "Конфиг" и его метод "конфиг::получитьЗначение('ключ')"
Такой конфиг можно сделать синглетоном или вообще сделать статическим.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽