Что такое класс верхнего уровня в java?

  • Что такое класс верхнего уровня в java?
  • Что такое определение класса верхнего уровня в java?

Я знаю, что это основной вопрос, но я не мог найти ясный и простой ответ на этот вопрос.

Ответ 1

Это просто любой класс, который не является вложенным классом. Если ваш файл Foo.java, а ваш класс Foo, то это класс верхнего уровня.

// in Foo.java:

public class Foo { // top level class

    public static class NestedBar { // nested class
    }

}

Я всегда считал, что это неофициальный термин, но на самом деле это определенный в JLS:

Класс верхнего уровня - это класс, который не является вложенным классом.

Вложенный класс - это любой класс, чье объявление происходит внутри тела другого класса или интерфейса.

Ответ 2

Вышеприведенное определение верное, возможно, другое определение может быть: класс верхнего уровня - это определенный класс с тем же именем файла ".java", где он находится. Однако, как и наблюдение, для случая было показано, вложенный (не верхний уровень) "статический" класс имеет такое же поведение класса верхнего уровня, что и взаимодействие с членами экземпляра класса, в котором он был вложен.