在Java中,常量(用final
關鍵字修飾的變量)具有以下可見性特性:
如果常量是在同一個包(package)中的不同類中定義的,那么它們之間是可見的。這意味著,如果一個類定義了一個常量,其他包中的類可以直接訪問這個常量,只要它們的名稱相同。
如果常量是在不同的包中定義的,那么它們之間的可見性取決于它們的訪問修飾符。默認情況下,常量的訪問修飾符是public
,這意味著它們在所有類中都是可見的。但是,如果常量被聲明為private
或包級私有(沒有指定訪問修飾符),則它們只能在其所在的包中的類中訪問。
以下是一個示例,說明了在不同包中的類如何訪問常量:
包A(File: A.java):
public class A {
public static final String CONSTANT = "Hello, World!";
}
包B(File: B.java):
public class B {
public static void main(String[] args) {
System.out.println(A.CONSTANT); // 輸出 "Hello, World!"
}
}
在這個例子中,CONSTANT
常量在包A中的類A
中定義,并在包B中的類B
中訪問。因為CONSTANT
被聲明為public static final
,所以它在所有類中都是可見的。