我有 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/