Java не включает файлы. Однако вы можете напрямую использовать классы, используя simple name, используя операторы import
.
По сути, вам нужен файл для каждого (верхнего уровня) класса, который вы определяете. Это позволяет IDE переименовывать блоки компиляции и выполнять другие рефакторинги. Кроме того, он позволяет легко добавлять код в нужное место.
Java использует пакеты для создания пространств имен . Сами пакеты являются совершенно отдельными пространствами имен. Хотя пространство имен выглядит как древовидная структура, в Java каждый пакет фактически не связан с каким-либо другим пакетом. Следовательно, вы не можете использовать его как структуру папок, использование ..
не допускается. Это может измениться, как только появятся «супер пакеты».
Оператор Java import
выглядит очень похоже на #include
, но изменение имени является преднамеренным: вместо того, чтобы захватить файл, чтобы сделать определения в этом файле известными, это просто утверждение, чтобы упростить обращение к нему. классы и интерфейсы. Это не имеет никакого другого эффекта, кроме как иметь более короткое имя для класса (или, для import static
, констант и других static
членов).
Большую часть времени классы верхнего уровня представлены с использованием структуры папок, которая отражает имя пакета. Это облегчает IDE и разработчикам поиск файла, представляющего класс. Это также позволяет легко установить контроль версий. Это, однако, не является частью самой спецификации Java; расположение исходного кода и классов Java не определено. Ранее IBM IDE, например, фактически сохранял исходный код и классы Java в базе данных; они не использовали файлы вообще. Более новые IDE, такие как Eclipse, могут использовать разные исходные папки, например, один для файлов модульного теста и один для самой библиотеки.
Итак, наконец, единственный способ включить пакеты - указать полное имя пакета, затем точку и затем класс для импорта или *
подстановочный знак для импорта всех классов этого пакета.
import java.util.Vector;
import java.util.*;
Большинство IDE создают эти операторы импорта для вас, возможно, после того, как вы выбрали правильный класс для импорта (в случае, если в разных пакетах есть классы с одинаковыми именами).
Дополнительную информацию можно найти в Спецификации языка Java (версия Java 7) .
В вашем случае вы определили класс Main
в корневом каталоге или пакет по умолчанию , который настоятельно не рекомендуется. Вы можете напрямую ссылаться на Main
без указания import
. Класс Other
находится в одноименном пакете Other
(использование заглавных букв в именах пакетов также настоятельно не рекомендуется). Вы можете обратиться к нему с помощью import Other.Other
.