如果一個類的可見性包是私有的,是否還有任何要點設置方法具有該可見性,因爲您無法首先訪問這些方法?包私人訪問修飾符
Q
包私人訪問修飾符
1
A
回答
1
例如,包私有類可能會實現一些接口並在包的外部使用。在這種情況下,實施的方法應該是public
。您也可以通過private
訪問修飾符來限制同一包中某些成員的使用。
package pkg1;
public interface SomeInterface {
void m();
public static SomeInterface getImplementation() {
return new A();
}
}
class A implements SomeInterface {
@Override
public void m() {}
public void m2() {} // this one cannot be called from other packages
private void m3() {} // this one might be used only in class A
}
package pkg2;
import pkg1.SomeInterface;
public class Main {
public static void main(String[] args) {
SomeInterface implementation = SomeInterface.getImplementation();
implementation.m();
}
}
0
簡單的回答是,如果一個類將要實施或擴展。不,如果它不會被延伸或實施。如何強烈建議仍然製作不希望其他課程看起來是私密的方法或變量。如果您希望更改類的可見性,並在長期運行時使代碼更易讀,這將節省以後的時間。
相關問題
- 1. 公共和私人訪問修飾符
- 2. 私人訪問修飾符的澄清
- 3. 訪問修飾符:私人與保護
- 4. 包訪問(protected修飾符)
- 5. Java包,私人的訪問修飾符行爲包衝突的情況下
- 6. Resharper - 如何關閉'私人'訪問修飾符?
- 7. 自助式私人修飾符
- 8. Delphi訪問修飾符
- 9. 內部訪問修飾符
- 10. 庫級訪問修飾符
- 11. EventInfo訪問修飾符
- 12. 動態訪問修飾符
- 13. 練習訪問修飾符
- 14. 類訪問修飾符
- 15. 保護訪問修飾符
- 16. 通過訪問修飾符
- 17. C#中私人和公共訪問修飾符之間的區別?
- 18. 是私人和公共訪問修飾符在性能上有所不同嗎?
- 19. 私有和公共java訪問修飾符基礎知識
- 20. 需要說明:java中的私有訪問修飾符
- 21. 斯卡拉私有訪問修飾符範圍
- 22. Java訪問修飾符:無修飾符與「默認」
- 23. 訪問修飾符C# - 內部修飾符
- 24. 訪問修飾符VS屬性
- 25. Java訪問修飾符優先
- 26. 成員類訪問修飾符
- 27. C++子類訪問修飾符?
- 28. 訪問Javascript中的修飾符
- 29. 訪問修飾符的內部類
- 30. 在java中訪問'final'修飾符類
簡短的回答是否定的,沒有意義。 –
如果將來改變類的可見性,它可能會阻止未來訪問這些方法, – Nicolas
是的,有一點。有人可能能夠通過反射來獲取方法,如果它們是公開的,甚至在禁止'setAccessible'調用的SecurityManager下運行。一般來說,如果有些東西不是爲了公共使用,請不要公開。 – VGR