有一道不是很懂,谁能帮我看一下。谢谢了。
冯乾中
2013-04-14
class Rect
{ private int height=1; private int width=1; public static int count; public void set(int height,int width) { this.height=height; this.width=width; count++; } } public class Ex { public static void main(String args[]) { Rect r1=new Rect(); Rect r2=new Rect(); r1.set(7,8); r2.set(9,5); System.out.println(r1.count+" " +r2.count+" "+Rect.count); } } 以上是代码,输出的为2 2 2 我想问一下原因。谢谢了。 |
|
xiaogui363
2013-04-15
public static int count;
这里count是个静态变量,静态变量不属于某个实例对象,而是属于类。 静态变量不需要创建任何实例对象,在程序加载的时候就会分配内存空间,而且在内存中只有一个这个变量。 所以不管你怎么访问这个变量,得到的值都是一样的。 上面的代码中两次调用了set方法,每调用一次count就自增1,所以count的值就是2了。 |
|
冯乾中
2013-04-15
哦。有点明白了。谢谢了。
|