需求
static void Main(string[] args)
{
class1 col1 = new class1();
class1 col2 = new class1();
class1 col3 = new class1);
Con);
Con();
}
public class class1
{
static public int count = 0;
static class1() { count++; }
public class1() {
}
public class1(int icount) { icount++; }
}
class1 col1 = new class1();
class1 col2 = new class1();
class1 col3 = new class1);
输出结果1
因为静态变量和静态构造函数只会在类的第一次实例化时进行初始化,之后一直被其他实例共享。
1、静态成员需要被static修饰,非静态成员不需要加static。
2、在一个非静态类中既可以出现静态成员,也可以出现非静态成员;而在一个静态类中只能出现静态成员;
3、在一个非静态方法中,既可以访问静态成员也可以访问非静态成员;而在一个静态方法中,只允许访问静态成员。
4、调用方法的区别:
实例方法需要使用对象调用,对象名.方法名;
静态方法使用类调用,类名.方法名。
5、静态类不允许创建对象。
6、静态和非静态类的使用时机:
如果写的是工具类,可以考虑使用静态类,例如Console类;
静态的好处是资源共享,例如,static成员是所有实例共享的,所以实例可以访问静态成员;
静态成员属于类所有,为各个类的实例所公用,无论类创建了几多实例,类的静态成员在内存中只占同一块区域。
静态类需要占用内存,所以静态类应越少越好。