Java的嵌套包可见
问题描述:
通常当我设计我认为巡航能力我不能正确的方式制定出限制该项目的一些新的组件......Java的嵌套包可见
想象一下,一个包“组件”,并在此组件包你有一些公共类/接口,这些公共共享和一些类/接口(ComponentSpecificStuff)是自然设计的,需要在内部包中,但这些不应该从包的外部可见...
现在用当前的java possiblities唯一的办法我做到这一点是违反了(不公开之外的东西“组件”包)时刻......
你如何解决这个问题?
答
是的,你可以通过包名使用内部关键字做它,直到有一定关系。
实施例你有一个包
com.myPackage.component
可以用另一个包作为
com.myPackage.component.internal.blahblah
当使用关键字内部它不暴露于其他罐子和不可用于使用所述罐外,但可以被另一个包装在罐子里面使用。这里的内部软件包将com.myPackage.component
向下扩展。正如引用Jon SkeetPackages are not hierarchical as far as the compiler is concerned - the "hierarchy" is just human pattern matching for organization, effectively.
这就是我的意思是通过进一步扩展包。
编辑
您可以通过不给予任何访问修饰符的类 例定义一个类包私人:
class PackagePrivateClass{
}
您可以在同一个包,但外面的导入这个类打包它不允许你使用它。
在Java中没有像“内部包”这样的概念。就编译器而言,包不是分层结构 - “层次结构”只是组织的人类模式匹配。 – 2014-10-10 14:48:50