[英]How to make a class available for Runtime java command outside of package
[英]How to make a java class only available to one other class in a package
我有3個類,BST,Term和WebPages。
BST是一個二進制搜索樹,每個節點中都有術語。
WebPages實例化BST。
如何確保BST類僅可用於WebPages類? (這是項目的要求)
它們應該在同一個包中,所以對我來說唯一有意義的是WebPages中的嵌套類。 還有其他方法可以限制對整個類的訪問,以便同一Package中只有一個其他類可以“看到”它嗎?
如其他答案所述,將BST
完全隱藏到WebPages
的合法方法是將其定義為靜態內部類:
public class WebPages {
private static class BST {
}
}
如果您滿意於在獨立的程序包中定義WebPages
,則可以將兩個類放在同一程序包中,但不要使用BST
的public
class修飾符。 您甚至可以在同一文件WebPages.java
定義兩個類,其結構如下:
public class WebPages {
}
class BST {
}
包級隱藏的不利之處在於,可以在同一包中編寫一個新類,並獲得對BST
訪問權。
看起來內部類是您的最佳選擇
這是JavaWorld的引文,描述了完全相同的情況!
例如,樹類可能具有執行搜索或遍歷樹的方法和許多輔助方法。 從面向對象的角度來看,樹是樹,而不是搜索算法。 但是,您需要對樹的數據結構有深入的了解才能完成搜索。 內部類使我們可以刪除該邏輯並將其放入自己的類中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.