簡體   English   中英

沒有聲明為 public、private 或 protected 的變量是什么?

[英]What are variables without public, private or protected declared as?

如果不是:

private JButton theButton;

我定義了一個這樣的字段:

JButton theButton;

有什么區別?

包裹。 它們對同一包中的其他類可見。

FWIW,我通常在這些上使用我自己的 no-op @Package 注釋,只是為了表明我知道我在做什么 - 我沒有忘記一些東西。 盡管這是默認設置,但與其他三種可能性中的任何一種相比,在高質量代碼中使用包訪問的次數可能更少——有一個很大的例外:

在某些類型的單元測試中,希望能夠訪問通常是私有的方法或字段。 提供訪問權限的一種方法是將它們設置為包訪問權限,並將單元測試類放在同一個包中(但通常在不同的“測試”目錄樹中)。 一些開發人員認為這是不好的做法 - 一般來說,在測試中使用私有(或用於測試的包)方法是不好的。

在 Java 中,有公共、受保護、包(默認)和私有可見性; 從最可見到最不可見的順序。

如果不指定,默認情況下可見性為package

package mytest.myvisibility;

public class MyClass
{
    public int myPublicInt; // visible to all
    protected myProtectedInt; // visible to subclasses of MyClass and to other members of the mytest.myvisibility package
    int myPackageInt; // visible only to other members of the mytest.myvisibility package
    private int myPrivateInt; // visible only to MyClass objects
}

與 c 上的靜態函數相同。 僅在同一個文件中可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM