java - 静电不好吗?如何删除静态变量?

标签 java variables static global-variables

我有一些正在处理的代码。它基本上接受用户输入并创建有向图。一个人可以单向旅行,另一个人则相反。输出是他们可以访问的地方的重叠。

我几乎所有的东西都按照我想要的方式工作,但我担心我所拥有的 static 的使用。我似乎没有完全理解它,无论我在哪里看,我都找不到它的确切用途或如何摆脱它。

谁能帮我理解静态是什么以及它为什么有用?

此外,将大部分代码从 MAIN 移至辅助方法会更好吗?如果我这样做,我必须将所有变量从 main 移动到类的顶部,然后它们都必须声明为静态的?!

最佳答案

一切都必须是静态的原因是因为您没有创建任何对象。如果要通过在 main 方法中调用 new 来创建对象,则可以在该对象上使用非静态变量。这不是一个很好的地方来给你一个教程,告诉你为什么你可能想要使用面向对象的设计;您可以在网上找到其中一个来阅读(上面的评论者提供了可能的引用)。但是一切都必须是静态的原因是因为它们都只是从 main 方法运行,在 java 中它始终是静态的。如果你要在某处调用 new,你可以使用非静态变量。

关于java - 静电不好吗?如何删除静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15960469/

相关文章:

string - 如何将 cmdlet 插入到 powershell 中的字符串中

java - 如何从我自己的自定义类加载器访问静态成员?

java - eclipse : Error: Could not find or load main class Original

java - HashMap<String,Object>.toMap 的意义是什么

php - 如果 URL 后没有 $_POST 存在,如何防止(没有任何内容)传递到 MySQL 查询中并导致错误?

variables - 问题设置返回文本到重复循环中的变量 - OS X 10.9.x

java - 使用带注释(标记)类的 AOP AspectJ 静态字段初始化

boost - 在 Boost Jam 文件中将多个静态库组合成单个共享库

java - Querydsl maven编译错误: QClass.类不存在

compiler-construction - 在 JDK 1.6 编译器中, "-source 1.6"启用什么(如果有)?