静态成员|静态方法|静态构造函数
2009-08-10 11:47
176 查看
一、静态成员(static) (1) 静态成员属于类所有,非静态成员属于类的实例所有。 (2) 每创建一个类的实例,都会在内存中为非静态成员新分配一块存储; 非静态成员属于类所有,为各个类的实例所公用,无论类创建了多少实例, 类的静态成员在内存中只占同一块区域。 二、静态方法 (1) 静态方法属于类所有,类实例化前即可使用。 (2) 非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。 因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化 之后才能分配内存,这样,静态方法调用时无法判断非静态变量使用的内存 地址。所以无法使用.而静态变量的地址对类来说是固定的,故可以使用。 三、静态构造函数 (1) 用于对静态字段、只读字段等的初始化。 (2) 添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。 (3) 类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者 引用类任何静态成员才激发静态构造函数 (4) 静态构造函数是不可继承的,而且不能被直接调用。 (5) 如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。任何带有初始值设定项的静态字段,则在执行该类的静态构造函数 时,先要按照文本顺序执行那些初始值设定项。 (6) 如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译 器会自动生成默认的静态构造函数。 (7) 无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个 属于实例,所以不会冲突。 MSDN对静态构造函数的解释: 静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建 第一个实例或引用任何静态成员之前,将自动调用静态构造函数。 静态构造函数具有以下特点: 静态构造函数既没有访问修饰符,也没有参数。 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。 无法直接调用静态构造函数。 在程序中,用户无法控制何时执行静态构造函数。 静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。 静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。 |
相关文章推荐
- 数组--->工具类的构造函数需私有化,成员方法为静态
- 类和对象(字段=变量、方法=函数、方法重载、静态成员、属性、构造函数)
- 构造函数、成员变量、成员方法、静态方法、数组的反射应用
- 第十四节 构造方法、静态成员、静态构造函数、析构函数和构造重载
- 静态块,静态属性,成员变量,静态方法,构造函数执行顺序
- C#学习之静态成员和非静态成员,构造函数,方法,方法参数,操作符重载,事件
- Javascript 构造函数,公有,私有特权和静态成员定义方法
- c#学习系列之静态类,静态构造函数,静态成员,静态方法(总之各种静态)
- c++ 带有初始化成员列表的类构造函数 定义与实现分离 方法
- 《C++ Primer》读书笔记第七章-3-构造函数再探 And 类的静态成员
- Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,
- static 静态成员是不能进行序列化的,要自定义方法对其进行序列化,放入统一容器中!
- 类与对象(构造函数,析构函数,静态数据成员)。。。2014.5.19
- Python的静态方法和类成员方法
- Python的静态方法和类成员方法
- C#扫盲之:静态成员、静态方法、静态类、实例成员及区别
- 黑马程序员-------静态(成员、类、构造函数)
- Python的静态方法和类成员方法
- .NET(C#)中静态方法或实例方法中调用静态成员或者实例成员,有几种情况?