java中静态变量的作用_Java中私有静态变量的用途是什么?

问题

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

声明变量asprivate static varName;与声明变量private varName;有什么不同?

在这两种情况下,它都无法从任何其他类访问为ClassName.varName或asClassInstance.varName。

将变量声明为静态会给它带来其他特殊属性吗?

#1 热门回答(97 赞)

当然,它可以被访问为ClassName.var_name,但只能从定义它的类中进行访问 - 这是因为它是private。

public staticorprivate static变量通常用于常量。例如,许多人不喜欢在代码中"硬编码"常量;他们喜欢使用有意义的名称制作apublic 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取决于你是否希望变量在课堂外可见。

#2 热门回答(88 赞)

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

如果你要做的事情如下:

public class Person

{

private static int numberOfEyes;

private String name;

}

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

#3 热门回答(42 赞)

私有静态变量的使用方式与私有实例变量的用法相同:它们存储的状态只能由同一个类中的代码访问。可访问性(私有/公共/等)和变量的实例/静态性质是完全正交的概念。

我会避免将静态变量视为在类的"所有实例"之间共享 - 这表明必须至少存在一个状态才能存在。否 - 静态变量与类型本身相关联,而不是与类型的任何实例相关联。

因此,只要你想要某个与该类型相关联的状态而不是任何特定实例,并且你希望将该状态保持为私有(例如,允许通过属性进行受控访问),那么拥有私有静态变量是有意义的。

顺便说一句,我强烈建议你公开(甚至非私有)的变量只是常量 - 不可变类型的静态最终变量。其他所有内容都应该是私有的,以便分离API和实现(以及其他内容)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值