如果一个变量被声明为public static varName;,那么我可以从任何地方访问它ClassName.varName。我也知道静态成员由类的所有实例共享,并且不会在每个实例中重新分配。
public static varName;
ClassName.varName
声明变量与声明变量有private static varName;什么不同private varName;吗?
private static varName;
private varName;
在这两种情况下,它都不能作为ClassName.varName或ClassInstance.varName从任何其他类访问。
ClassInstance.varName
将变量声明为静态是否会赋予它其他特殊属性?
当然,它可以作为 访问ClassName.var_name,但只能从定义它的类内部 - 那是因为它被定义为private.
ClassName.var_name
private
public static或private static变量通常用于常量。例如,许多人不喜欢在他们的代码中“硬编码”常量;他们喜欢使用有意义的名称创建一个public static或private static变量,并在他们的代码中使用它,这应该使代码更具可读性。(你也应该制作这样的常量final)。
public static
private static
final
例如:
public class Example { private final static String JDBC_URL = "jdbc:mysql://localhost/shopdb"; private final static String JDBC_USERNAME = "username"; private final static String JDBC_PASSWORD = "password"; public static void main(String[] args) { Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD); // ... } }
是否成功public或private取决于您是否希望变量在课堂外可见。
public