java - java中的变量类

标签 java class variables

所以我知道如何引用来自不同类的变量,但我想知道是否值得我创建一个 Vars.class 来容纳我所有的全局变量。

如果我需要在以后更改它们,这会让我更容易,但是,我想知道这是否是一个速度明智的坏主意?引用来自不同类的 var 是否需要更长的时间?

谢谢

编辑:当我说“全局变量”时,我的意思是“全局常量”。为困惑道歉。我希望它们可以从其他类中引用,但不会即时更改。

变量.java

package test;

public class Vars
{
    static int variable1 = 16;
    static int variable2 = 32;
}

启动.java

package test;

public class Start
{
    public Start()
    {
        int i = Vars.variable1;
    }
}

最佳答案

So I know how to reference variables from different classes, but I'm wondering if it's worth me creating a Vars.class to house all my global vars.

没有。值得一开始就避免使用全局变量。变量应该代表特定对象的状态 - 因此根据有用对象的合理边界对变量进行分组,然后确保每个对象都知道它需要依赖的任何其他对象。

如果您要抛弃面向对象,那么使用面向对象的语言就毫无意义。

非常短期内,花时间在您的应用程序中确定适当的类型无疑比仅使用全局变量要慢......但它会让您的代码更容易维护和测试。

至于性能:您担心这个太多还为时过早。变量的访问时间几乎永远不会对性能产生重大影响。以最简单可行的方式设计您的代码。确定性能指标和验收标准。查看您的代码是否已经满足这些条件。如果没有,请找出原因并进行最彻底的更改以提高性能(始终进行测量)。

此外,变量本身几乎应该始终是私有(private)的:存储是一个实现决定;考虑如何以及是否通过方法公开状态。

关于java - java中的变量类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12620410/

相关文章:

java - 我可以使用 Hibernate Annotations 自动将 EnumSet 映射到一系列 boolean 列吗?

python - super() 方法只初始化一些参数

javascript - 使用 $.each() 清理传递给函数的变量

java - 数组的值发生变化而没有任何命令影响它

java - 从 weblogic 切换到 tomcat/maven 后,.tld 不工作

Java - 在不使用内部迭代器类的情况下实现自定义 Iterable

java - JVM如何将数据存储到ByteBuffer中?

c# - 命名空间和类同名?

jQuery 的 attr - 返回多个类而不仅仅是第一个类

java - Java 中的变量继承(初学者)