Проще говоря, Java поддерживает объявление класса статичным только для внутренних классов, но не для классов верхнего уровня.
классы верхнего уровня: проект Java может содержать более одного класса верхнего уровня в каждом исходном файле Java, один из классов назван в честь имени файла. Перед классами верхнего уровня допускаются только три параметра или ключевые слова: public, abstract и final .
Внутренние классы: классы, которые находятся внутри класса верхнего уровня, называются внутренними классами, что в основном является концепцией вложенных классов. Внутренние классы могут быть статичными . Идея сделать статические внутренние классы состоит в том, чтобы воспользоваться преимуществами создания экземпляров объектов внутренних классов без создания экземпляра объекта класса верхнего уровня. Это точно так же, как статические методы и переменные работают внутри класса верхнего уровня.
Следовательно, Java поддерживает статические классы на уровне внутреннего класса (во вложенных классах)
И Java не поддерживает статические классы на классах верхнего уровня.
Я надеюсь, что это дает более простое решение вопроса для базового понимания статических классов в Java.