Как вы, вероятно, знаете, в C директива #include <file.h>
просто вставляет все содержимое file.h
в текущий исходный файл. file.h
обычно содержит только объявления функций, которые определены в file.c
(или в других файлах с несвязанными именами), а также struct
объявлений и #define
s. Затем компилятор компилирует текущий исходный файл без знания фактической реализации функций, которые объявлены в заголовочных файлах. После компиляции компоновщик находит фактическую реализацию в других скомпилированных файлах и подключает к ней ваш скомпилированный файл.
В Java сам компилятор может искать определения в других файлах; следовательно, нет необходимости в заголовочных файлах. Вместо этого каждый файл объявляет себя частью пакета , и каждый файл обычно содержит один класс (и все методы (такие же, как функции в C) должны находиться внутри классов). В верхней части каждого файла можно просто перечислить квалифицированное имя пакета для всех классов, на которые вы хотите сослаться, с помощью оператора import
. Полный пример:
MainClass.java
import foobar.OtherClass;
public class MainClass {
public static void main(String[] args) {
System.out.println(OtherClass.SomeArray.length);
}
}
OtherClass.java
package foobar;
public class OtherClass {
public static final int[] SomeArray = {3, 42, 0, 9};
}