当我运行该程序时,它将提供以下输出。为什么我的gy为2而不是5。那么为什么我得到这个输出?我想了解的东西。请给我解释一下。
public class G {
public int x = 3;
public static int y = 7;
public static void main(String[] args) {
G g = new G();
G h = new G();
g.x=1;
g.y=5;
h.x=4;
h.y=2;
System.out.println("g.x="+g.x);
System.out.println("g.y="+g.y);
System.out.println("h.x="+h.x);
System.out.println("h.y="+h.y);
}
}
输出:
g.x=1
g.y=2
h.x=4
h.y=2
静态变量是整个类中的一个,而不是每个实例一个。
两者g.y
和h.y
(和G.y
)是指相同的变量,所以最后分配胜和的值是2。
static
通过类的实例访问变量是令人困惑的,但是Java允许它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句