Можно ли объявить метод вне класса в Java?

«Можно ли объявить метод вне класса в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет. В Java все методы должны быть объявлены внутри класса или интерфейса. Это фундаментальное требование объектно-ориентированной парадигмы языка.

Почему? Java — строго объектно-ориентированный язык, где код существует в контексте классов. Даже точка входа в программу — метод main() — объявляется внутри класса.

Пример корректного объявления:

public class Example {
    // Метод объявлен внутри класса
    public static void printMessage() {
        System.out.println("Hello, World!");
    }

    public static void main(String[] args) {
        printMessage();
    }
}

Исключения (кажущиеся):

  • Лямбда-выражения и анонимные классы — технически они также существуют в контексте класса или интерфейса.
  • Статические импорты — позволяют использовать статические методы без указания имени класса, но сам метод всё равно объявлен внутри класса.