一个程序看java的static

[code]class StaticTest{
   int x=1;
   static int y=1;
}
class StaticTester{
  public static void main(String args[]){
    int i;
    StaticTest.y= StaticTest.y +1;
    StaticTest  m=new  StaticTest();
    StaticTest  n=new  StaticTest();
    m.x= m.x +3;
    m.y= m.y+3;
    n.x= n.x+5;
    n.y= n.y+5;
    System.out.println("m.x="+m.x+" "+ "m.y="+m.y);
    System.out.println("n.x="+n.x+" "+ "n.y="+n.y);
  }
}[/code]

输出结果为:
m.x=4 m.y=10
n.x=6 n.y=10

m.x=4和m.x=6都是好理解的

下面是一个简短的说明:
[quote]static可以修饰类中的属性和方法。
静态属性在类定义时静态地分配空间。它属于类,不属于某个特定的对象,因此可以通过类进行访问。往往将属于类的公共属性说明成static。[/quote]

也就是说一个声明为static的变量,你改变多少次,它的值只是唯一的一个,就像前面引用的说的
[quote]静态属性在类定义时静态地分配空间。它属于类,不属于某个特定的对象[/quote]
如果最后把StaticTest.y打印出的,也是10

一个程序看java的static》有2个想法

回复 killer 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注