Skip to content

Commit 614503d

Browse files
authored
Chapter 1: source root and packages
1 parent 886228b commit 614503d

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

tutorial/01_Hello_World.adoc

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)