Mar*_*uer 7 java field global-variables
我开始学习函数式编程语言(SML)并用这种语言编写一些程序.然后我开始检查Java,我觉得类字段看起来像全局变量,它们使编程变得复杂.例如,我必须阅读方法,以查看哪一个读/写它们等.
从我所听到的,使用像C这样的编程语言中的全局变量是一个坏主意.但是Java类字段呢,它们不是像所有类方法的全局变量一样吗?使用字段是个坏主意吗?(或者我可能理解错误或者我以"错误的方式"Java编程)
我假设“类变量”是指“静态变量”。
您会问“它们是不是类似于所有类方法的全局变量?”。
你是对的。在班级中,他们的行为就像是全球性的,有他们所有的问题。
不同之处在于您的类不应该像整个程序一样复杂,因此更容易理解和修复由它们引起的问题。
可以修改变量的代码越少,您需要考虑的情况就越少。全局变量可以被任意未知代码修改。
在某些情况下,让一个类的所有实例共享一个变量(例如单例)也是绝对有意义的。你只需要负责任地使用它。
你不应该使用它们吗?
不,您可以使用它们。但是将它们的可见性限制在所需的最低限度,这样它们就不会成为“事实上的”全局变量。
如果可能,也将它们设为最终版本。
但是在Java中,整个程序并不是使用单个类来编写的。常量(公共静态最终字段)就像全局变量。我的建议是,不要专注于 Java 的每一个部分,Java 的优点在于它作为一个整体提供的东西。因为那时您就会看到 java 的每个特性的重要性。
| 归档时间: |
|
| 查看次数: |
1742 次 |
| 最近记录: |