Ответ
Статические методы вызываются у класса. Хотя синтаксис Java позволяет вызвать их через ссылку на экземпляр, это считается плохой практикой, так как скрывает их статическую природу и может ввести в заблуждение.
Почему у класса? Статические методы принадлежат классу, а не конкретному объекту. У них нет доступа к нестатическим (экземплярным) полям и методам, так как они не работают с состоянием this.
Пример и рекомендации:
class Utility {
static void printInfo() {
System.out.println("This is a static method.");
}
}
// Правильный вызов (рекомендуется):
Utility.printInfo();
// Некорректный вызов (работает, но не рекомендуется):
Utility obj = new Utility();
obj.printInfo(); // Компилятор заменит это на Utility.printInfo()
Best Practice: Всегда вызывайте статические методы, используя имя класса (ClassName.staticMethod()). Это делает код понятнее и соответствует принципам чистого кода.