Хорошо, поэтому исходный файл java должен иметь хотя бы один открытый класс, и файл следует называть "class-name.java". Достаточно справедливо.
Следовательно, если у меня есть класс, то следующее компилируется:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
Но что меня беспокоит, если я удалю "общедоступный" модификатор доступа из приведенного выше кода, код все еще компилируется. Я просто не понимаю. Извлекая его, код выглядит так:
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.
}
}
В приведенном выше коде, так как я удалил "общедоступный" модификатор доступа, мой класс имеет доступ по умолчанию или пакетный доступ, т.е. он не может получить доступ из внешнего мира только изнутри пакета.
Итак, мой вопрос в том, как скомпилировать вышеуказанный код? Файл HelloWorld.java в этом случае не имеет "общедоступного" класса HelloWorld (только пакетно-закрытый HelloWorld.class), и, таким образом, мое понимание не должно компилироваться.
Оцените свое время, отвечая на мои вопросы!
С уважением, Тотчас