java - 如何使一个java类只能用于包中的另一个类

标签 java

我有 3 个类(class):BST、术语和网页。

BST 是一个二叉搜索树,每个节点都有术语。

WebPages 实例化 BST。

如何确保 BST 类可用于 WebPages 类? (这是项目的要求)

它们应该位于同一个包中,因此对我来说唯一有意义的是网页内的嵌套类。是否有其他方法来限制对整个类的访问,以便同一包中只有一个其他类可以“看到”它?

最佳答案

正如其他答案中所述,将 BST 隐藏到 WebPages 的合法方法是将其定义为静态内部类:

public class WebPages {

    private static class BST {

    }
}

如果您对在独立包中定义 WebPages 感到满意,则可以将这两个类放在同一个包中,但省略 public 类修饰符BST 。您甚至可以在同一个文件 WebPages.java 中定义这两个类,其结构如下:

public class WebPages {

}
class BST {

}

包级隐藏的缺点是,可以在同一个包中编写新类并获得对 BST 的访问权限。

关于java - 如何使一个java类只能用于包中的另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26395260/

相关文章:

java - 如何在 MySQL 后端的 Hibernate save() 调用上设置超时?

java hdfs api Protocol Buffer 异常

java - 使用 Spring Restful Web 服务的 json 进行回复

java - 为什么简单的 Swing 应用程序在显示窗口时不终止?

java - UTF8 和 jsp,试图了解发生了什么

java - Spring RestTemplate with rootUri 返回 URI 不是绝对错误

java - 如何使用 java 对 spark 数据集中的 optional 字段进行编码?

tomcat - 如何将用于 java 类路径的库链接起来?

java - 使用两个标识符(rowIndex、colIndex)比较数组的快速方法

java - 在 AsyncTask 中同步两个并发网络调用