Когда я проводил некоторое тестирование с пакетами и частными классами на Java, я заметил интересную вещь. Ниже приведена исходная структура моих проектов, класс MyTestClass.java
в пакете com.test.pkg
под исходной папкой src
- это класс, защищенный пакетом. По моему мнению, это не должно быть доступно за пределами этого пакета. Но, интересно MyTestClass.java
класс доступен в com.test.pkg
под исходной папкой test
. Это происходит, только если имена пакетов одинаковы, хотя они находятся в разных исходных папках.Пакет-частный класс, видимый для некоторых других пакетов (с тем же именем) в другой исходной папке
Может кто-нибудь сказать мне, почему это происходит?
TestProject
|
-src
-com.test.pkg
-MyTestClass.java
-test
+com.test.pkg
И почему бы и нет, это тот же пакет ... Не имеет значения, находятся ли они в разных каталогах или банках. Это тот же самый пакет. –
Благодарим за информацию. Если да, то каково использование источника исходных папок (src, test в этом случае). Это только для организационной цели? – k0der
@ k0der - Когда вы «импортируете» классы, вы вставляете 'src' в путь класса ?. Неправильно? Вы начинаете с 'com.test ....'. Итак, 'src' и' test' находятся на одном уровне и представляют собой родительский каталог 'global'. Таким образом, пакет будет таким же. – TheLostMind