Static静态方法和静态字段

Posted on 2008-04-10 20:46 火山工作室 阅读(80) 评论(0)  编辑 收藏 引用 网摘 所属分类: 高职IT教育
 

1static用来声明静态成员,声明的东西属于类,不属于对象;

也就是说不需要实例化,通过类就可以直接使用;

static 用于字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类型。

我们可以理解static声明的成员在声明时就占用了内存空间,而其他的成员只有在实例化时才占用内存空间。

静态方法只能访问静态成员

2static关键字修饰静态字段,达到“计数器”的目的

     class Test

     {

         static void Main(string[] args)

         {

              AAA a = new AAA();   //在内存中申请到一个空间,创建一个对象

              Console.WriteLine(a.getSum());    //输出结果是多少?

              for(int i=0;i<10;i++)

              {

                   new AAA();      //循环十次,创建了十个对象

11,因为AAA这个类被new11次,内存中已有11AAA的对象

              }

              Console.WriteLine(a.getSum());    //输出结果是多少?为什么

         }

     }

     class AAA

     {

         private static int sum=0; //定义静态字段sum,该变量属于类

         public AAA()

         {

              sum++;                //在构造函数中累加

         }

         public int getSum()

         {

              return sum;

         }

     }

 

3static关键字修饰静态构造函数

     class Test

     {

         static void Main(string[] args)

         {

              AAA a = new AAA();

              Console.WriteLine(a.getSum());    //输出结果是多少?

              for(int i=0;i<10;i++)

              {

                   new AAA();

              }

              Console.WriteLine(a.getSum());    //输出结果是多少?为什么

结果为1,静态构造函数只运行一次

         }

     }

     class AAA

     {

         private static int sum=0; //定义静态字段sum

         static  AAA()               //与第一题相比,这里改成了静态构造函数

         {

              sum++;                //在构造函数中累加

         }

         public int getSum()

         {

              return sum;

         }

     }

 


只有注册用户登录后才能发表评论。

posts - 46, comments - 16, trackbacks - 0, articles - 7

Copyright © 火山工作室