Это всегда зависит.
Иногда метод опирается на свойства объекта, поэтому для каждого объекта такой метод будет вести себя по-разному.
С другой стороны, static
метод должен быть независимым от нестатических свойств объекта, поэтому его можно вызывать без создания объекта.
Это зависит от того, чего вы хотите достичь.
Пример:допустим, у вас есть класс User
и вы хотите получить возраст объекта этого класса.Имеет ли смысл иметь общий метод static
?Нет, поскольку у каждого пользователя был бы разный возраст.
С другой стороны, вы хотели бы иметь метод для определения типа человека, например, "I am user"
- это будет зависеть от состояния (свойств) объекта, чтобы вы могли сделать этот метод static
.