@@ -43,3 +43,41 @@ public class Hello {
4343
4444Ключевое слово _public_ делает класс *открытым*, то есть доступным во всей программе.
4545`Hello` является именем класса.
46+
47+ Язык Java придерживается ряда соглашений о структуре проекта.
48+ В частности, все файлы с исходным кодом должны находится в директории, которая называется *Source root*
49+ (переводится на русский примерно как "корневая директория исходного кода").
50+ В проекте с использованием систем сборки Maven или Gradle директория Source root = `ProjectDir/src/main/java`.
51+ В проекте без использования систем сборки всё проще: Source root = `ProjectDir/src`.
52+ Содержимое же директории *Source root* определяется структорой *пакетов* (_package_).
53+ Например:
54+
55+ [source,java]
56+ ----
57+ // test/Hello.java
58+ package test;
59+ public class Hello {
60+ }
61+ ----
62+
63+ Обратите внимание на директиву `package test` перед определением класса.
64+ Это означает, что файл `Hello.java` обязан находиться в директории `test`, которая,
65+ в свою очередь, должна являться поддиректорией Source root.
66+ О классе `Hello` в этом случае говорят, что он находится в пакете `test`,
67+ а *полное его имя* -- test.Hello.
68+ Имя файла обязано совпадать с именем определённого в нём открытого класса
69+ (отсюда, в частности, следует, что открытый класс в файле может быть определён лишь один).
70+
71+ [source,java]
72+ ----
73+ // another/subpack/Some.java
74+ package another.subpack;
75+ public class Some {
76+ }
77+ ----
78+
79+ Здесь класс `Some` находится в пакете `another.subpack`,
80+ его полное имя -- another.subpack.Some, он обязан находиться в файле `Some.java`,
81+ а путь к этому файлу должен быть `another/subpack/Some.java`.
82+ Директория `another` должна быть поддиректорией Source root.
83+
0 commit comments