在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
,所以它在所有类中都是可见的。