Posted on 2008-04-10 20:46
火山工作室 阅读(80)
评论(0) 编辑 收藏 引用 网摘 所属分类:
高职IT教育
(1)static用来声明静态成员,声明的东西属于类,不属于对象;
l 也就是说不需要实例化,通过类就可以直接使用;
l static 用于字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类型。
l 我们可以理解static声明的成员在声明时就占用了内存空间,而其他的成员只有在实例化时才占用内存空间。
l 静态方法只能访问静态成员
(2)static关键字修饰静态字段,达到“计数器”的目的
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这个类被new了11次,内存中已有11个AAA的对象
|
}
Console.WriteLine(a.getSum()); //输出结果是多少?为什么
}
}
class AAA
{
private static int sum=0; //定义静态字段sum,该变量属于类
public AAA()
{
sum++; //在构造函数中累加
}
public int getSum()
{
return sum;
}
}
|
(3)static关键字修饰静态构造函数
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()); //输出结果是多少?为什么
}
}
class AAA
{
private static int sum=0; //定义静态字段sum
static AAA() //与第一题相比,这里改成了静态构造函数
{
sum++; //在构造函数中累加
}
public int getSum()
{
return sum;
}
}
|