私有静态变量在 Java 中的用法是什么?

2022-08-31 06:45:36

如果一个变量被声明为 ,那么我可以从任何地方访问它作为 .我还知道静态成员由类的所有实例共享,并且不会在每个实例中重新分配。public static varName;ClassName.varName

将变量声明为与声明变量有什么不同吗?private static varName;private varName;

在这两种情况下,都不能将其作为任何其他类访问或从任何其他类访问。ClassName.varNameClassInstance.varName

将变量声明为静态是否赋予它其他特殊属性?


答案 1

当然,它可以作为 访问,但只能从定义它的类内部访问 - 这是因为它被定义为 。ClassName.var_nameprivate

public static或变量通常用于常量。例如,许多人不喜欢在他们的代码中“硬编码”常量;他们喜欢用一个有意义的名称制作一个或变量,并在他们的代码中使用它,这应该使代码更具可读性。(您还应该制作这样的常量)。private staticpublic staticprivate staticfinal

例如:

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);

        // ...
    }
}

是创建它还是取决于是否希望变量在类外部可见。publicprivate


答案 2

静态变量对于类的所有实例都有一个值。

如果你要做这样的东西:

public class Person
{
    private static int numberOfEyes;
    private String name;
}

然后你想改你的名字,那很好,我的名字保持不变。但是,如果你想改变它,让你有17只眼睛,那么世界上的每个人都会有17只眼睛。