![](/img/trans.png)
[英]accessing package-private fields in classes shared across Eclipse projects
[英]Accessing package-private fields in Java
隨便看看Android API來源。 有一個FileDescriptor
帶有一個沒有訪問修飾符的數據成員descriptor
:
int descriptor;
然后是FileOutputStream
類,該類構造一個新的FileDescriptor並將其分配給該字段:
fd = new FileDescriptor();
fd.descriptor = fileSystem.open(...);
它與Java的現場訪問控制模型如何兼容? 我認為無法從聲明類的外部訪問包私有字段,並且沒有像C ++這樣的友好概念。
基本上,可以在class
和package
級別訪問package-private:
從來源 :
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
沒有修飾符的聲明,例如
int描述符;
是包私有的,在包內而不是包外均可訪問DEFAULT。 同一包內的任何類都可以訪問它們,但在包外不可見。
有關更多詳細信息,請參閱此處
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
包私有字段(以及其他任何內容)就是:包中的私有字段。 這意味着沒有其他類可以訪問包范圍之外的字段(或其他實體)。 有關更多詳細信息,請參見此處 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.