为什么java中没有像C++这样的全局变量?

2022-09-04 23:41:48

为什么Java中没有全局变量?如果我喜欢在程序的所有类中使用任何变量,那么我该怎么做呢?


答案 1

如果你真的想这样做,让它成为一个公共静态变量。

但是,建议您尽量不要这样做 - 它使代码变得不那么优雅,更难维护,更难测试代码。


答案 2

全局变量(在 Java 上下文中 - 变量)是坏的,因为:public static

  • 更难维护 - 您无法将断点或记录变量的每个更改,因此运行时的意外值将很难跟踪和修复

  • 更难测试 - 阅读Miško Havery的帖子

  • 更难阅读 - 当有人看到代码时,他会想知道:

    • 这是从哪里来的?
    • 还有什么地方可以阅读?
    • 还在哪里修改它?
    • 我如何知道其当前值是多少?
    • 它记录在哪里?

为了澄清一个似乎需要的澄清 - 变量!=常量。变量会发生变化,这就是问题所在。因此,拥有一个是完全可以的 - 没有人可以改变它。public static final int DAYS_IN_WEEK = 7


推荐