Hri*_*sto 7 java static class instance-variables static-variables
我已经多次遇到这个问题而且我从不费心去了解它为什么会发生并学习"静态"实际意味着什么.我刚刚应用了Eclipse建议并继续进行的更改.
public class Member {
// Global Variables
int iNumVertices;
int iNumEdges;
public static void main(String[] args) {
// do stuff
iNumVertices = 0; // Cannot make a static reference to the non-static field iNumVertices
// do more stuff
} // main end
}
Run Code Online (Sandbox Code Playgroud)
所以eclipse告诉我这样做static int iNumVertices;,我不知道为什么.那究竟什么是"静态",它是如何使用的,使用"静态"的目的是什么,为什么它会给我这个问题呢?
这是你的例子:
public class Member {
// Global Variables
int iNumVertices;
int iNumEdges;
public static void main(String[] args) {
// do stuff
iNumVertices = 0; // Cannot make a static reference to the non-static field iNumVertices
}
}
Run Code Online (Sandbox Code Playgroud)
该方法main是与该类关联的静态方法.它与实例没有关联Member,因此无法访问与实例关联的变量Member.对此的解决方案不是使这些字段静态.相反,您需要创建Member使用new关键字的实例.
这是一个修改版本:
public class Member {
// Fields
private int iNumVertices;
private int iNumEdges;
public Member(){
// init the class
}
public static void main(String[] args) {
Member member = new Member();
member.iNumVertices = 0;
// do more stuff
}
}
Run Code Online (Sandbox Code Playgroud)
找到自己创建全局静力学表明你应该仔细考虑如何设计一些东西.这并不总是错的,但它应该告诉你要思考你在做什么.