Возможный иметь несколько классов во всего одном файле в Eclipse?

Действительно ли возможно иметь несколько классов в единственном файле Java в Eclipse? Или у меня должен действительно быть каждый в различном файле?

Это - просто что-то наложенное Eclipse, или компилятор Java имеет что-то против наличия всего в том же файле?

5
задан devoured elysium 2 March 2010 в 19:58
поделиться

6 ответов

Согласно спецификации Java (это не правило Eclipse), вы можете иметь только один публичный класс в файле. Вы можете иметь внутренние классы, или статические классы, в том же файле, что и публичный класс.

12
ответ дан 18 December 2019 в 08:27
поделиться

Eclipse следует соответствующему стандарту Java: 7.6. Объявления типов верхнего уровня . На верхнем уровне один исходный файл может объявлять любое количество классов, но только один может быть общедоступным. Все остальные имеют доступ к частному пакету .

4
ответ дан 18 December 2019 в 08:27
поделиться

Вы можете иметь только один класс верхнего уровня или интерфейс, и объявления внутренних классов (статических или иных) внутри него. Это ограничение, пришедшее из Java, а не из Eclipse. На самом деле, редактор C++ для Eclipse без проблем справится с ним для файлов C++.

1
ответ дан 18 December 2019 в 08:27
поделиться

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

2
ответ дан 18 December 2019 в 08:27
поделиться

Это языковое требование. Единственный способ встроить классы в один файл - это создать внутренние классы.

0
ответ дан 18 December 2019 в 08:27
поделиться

Фактически это указано в спецификации Java: http://java.sun.com/docs/books/jls/third_edition/html/packages. html # 26783

Если вы хотите, чтобы в одном файле было несколько классов, это должен быть внутренний класс из «верхнего» общедоступного.

0
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: