на этот Вопрос уже был принят ответ, но я думаю, что этот ответ не совсем понятен для новичка в Java, пришедшего из .Net.
Есть ли в Java точный эквивалент внутреннего модификатора в C #? краткий ответ - НЕТ (но вы можете добиться этого как-нибудь, и я скажу) !!
internal в C # на самом деле является модификатором "частная сборка". что такое сборка?
Сборка - это любой продукт вашего проекта (DLL или EXE в C # - эквивалент в java может быть файлом JAR)
В Java нет точного эквивалента для internal. и то, что ответил Брайан Кайл и принял, на самом деле является «частным пакетом» (пакеты в java эквивалентны пространствам имен в C #), но кое-что из того, что было получено, является самым близким способом получить тот же результат.
НО как получить полностью такой же результат, как и внутренний? не может Java иметь решение для этого? ответ ДА.
это имеет. но не с модификатором.
На самом деле лучший способ сделать это - секрет в упаковке. Лучшая практика упаковки - это упаковать ваши классы по их родству, а не по их типу.
многие из нас используют пакеты с именами «Модели» или «Презентаторы» и помещают в них все наши модели или презентаторы. пока это чертовски неправильно. пакеты должны быть как «Book», содержащие «BookModel.java», «BookPresenter.java», .....
таким образом, вы можете сделать их закрытыми для пакета, не используя модификатор, и у вас не возникнет никаких проблем, потому что вы можете получить к ним доступ в любом классе, который нуждается в вашем классе закрытого пакета, потому что у вас есть хорошая практика упаковки.