【发布时间】:2019-08-08 11:41:18
【问题描述】:
既然我们不能在静态方法中使用this,我们也不能使用非静态变量,为什么我们可以使用对象,而对象在静态方法中使用非静态变量呢?
这就是我的意思:
public int x;
public int y;
public Account(int a, int b) {
this.x = a;
this.y = b;
}
public static void Swap(Account acc) {
int holder;
holder = acc.x;
acc.x = acc.y;
acc.y = holder;
}
所以Swap() 会起作用,即使对象内部的变量不是静态的。我不明白这部分。将不胜感激一些帮助。蒂亚!
【问题讨论】:
-
我能想到的一个潜在原因是,只有初始输入很重要,所以如果参数是一个对象,并且它基本上“通过”了第一次检查(静态/非静态),则休息不重要。同样,不确定这就是我要问的原因。
-
想一想:访问
x和访问acc.x有什么区别?如果它不是静态的,Java 会阻止你引用的变量是什么?acc是静态的吗?
标签: java object methods static non-static