静态方法与静态数据

时间:2010-07-31 13:45:52

标签: java oop

为什么我们不能在静态方法中使用非静态数据成员?

3 个答案:

答案 0 :(得分:4)

非静态成员属于对象。静态方法没有对象。

如果我们有

class MyClass {
int member;
. . .

public static int statFunc() {
   . . .
   foo = member;
   . . .
}
. . .

}

如果我们有两个MyClass一个member = 1个实例,另一个member = 2个实例 我们调用statFunc然后statFunc不知道要使用member的哪个值。

答案 1 :(得分:0)

非静态数据类型是指类的实例,这些变量的值可以根据从类创建的每个实例而变化。

例如,请查看以下代码:

public class name {

String name;

}

每个名称对象可以使用不同的名称。

这就是为什么非静态变量只能通过非静态方法访问的原因,否则静态方法永远不会知道哪个实例变量。

我希望这会有所帮助。

答案 2 :(得分:-1)

因为它没有任何意义。实例变量与类的实例相关联。静态方法不是。你会在静态方法中讨论哪个实例的变量?