It always depends.
Sometimes method relies on properties of a object, so on every object such method would behave differently.
On the other hand, static
method must be independent of object non-static properties, so it can be called without instantiating object.
It depends what you want to achieve.
Example: let's say you have a class User
and you'd like to get age of object of that class. Would it make sense to have common static
method? No, as every user would have different age.
On the other hand, you'd like to have method to get the type of person, something like "I am user"
- this would be independent from the state (properties) of an object, so you could make this method static
.