Java包和类

前端之家收集整理的这篇文章主要介绍了Java包和类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在用Java构建一个非常简单的库,它将打包在一个Jar中.它应该只暴露一个类:世界. World类使用Block类的子类,它位于同一个包(com.yannbane.a)中,并且本身不提供很多功能,但需要进行扩展.我计划创建另一个包com.yannbane.a.blocks,它将包含所有块类型(子类).

因此,目录/包结构应如下所示:

com/
    yannbane/
        a/
            World.java
            Block.java

            blocks/
                Brick.java
                Stone.java

但是,为了使Block的子类实际扩展Block类,我需要将Block类设为public.这破坏了我的目标,即让Jar文件只暴露一个类World.我还需要将子类公开,以便World可以使用它们.

我如何保留这个包和目录结构,但仍然让我的Jar只公开World类,而不是其他类?

最佳答案
如果这是封装问题,并且您想要向世界公开的所有内容都是“World”类,那么未曝光的类是否位于同一个包中或者它们是同一个包中的内部类并不重要.

无论如何,API的用户都无法访问它们.我认为封装比你想要提供文件的“逻辑”组织更重要.因为如果您在同一个包中找到所有类,那么您将不会遇到这些问题,并且您将达到所要求的封装级别.也许Java告诉你的是这些类本质上是相关的,你应该将它们全部放在同一个包中.

猜你在找的Java相关文章