您的位置:首页 > 编程语言 > C#

(原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义03--静态和实例类成员

2015-11-02 14:50 671 查看
[b]8.1.4 静态和实例类成员[/b]

  属性、方法和字段等成员是对象实例所特有的,此外,还有静态成员(也称为共享成员,尤其是Visual Basic 用户常常使用这个术语),例如静态方法、静态属性或静态字段。静态成员可以在类的实例之间共享,所以可以将它们看作是类的全局对象。静态属性和静态字段可以访问独立于任何对象实例的数据,静态方法可以执行与对象类型相关、但与对象实例无关的命令。在使用静态成员时,甚至不需要实例化对象。

  例如,前面使用的Console.WriteLine()和Convert.ToString()方法就是静态的,根本不需要实例化Console 或 Convert 类(如果试着进行这样的实例化,操作会失败,因为这些类的构造函数不是可公共访问的,如前所述)。

  许多情况下,静态属性和方法有很好的效果。例如,可以使用静态属性跟踪给类创建了多少个实例。在UML语法中,类的静态成员用下划线表示,如图8-5所示。



1. 静态构造函数

  使用类中的静态成员时,需要预先初始化这些成员。

  使用静态构造函数可以执行此类初始化任务。一个类只能有一个静态构造函数,该构造函数不能有访问修饰符,也不能带任何参数。静态构造函数不能直接调用,只能在下述情况下执行:

    创建包含静态构造函数的类实例时

    访问包含静态构造函数的类的静态成员时

  在这两种情况下,会先调用静态构造函数,之后实例化类或访问静态成员。无论创建了多少个类实例,其静态构造函数都只调用一次(静态变量是所有实例共用的,所以只需要初始化一次。)。为了区分静态构造函数和本章前面介绍的构造函数,也将所有非静态构造函数称作实例构造函数。

 

2. 静态类

  我们常常希望类只包含静态成员,且不能用于实例化对象(如Console)。为此,一种简单的方法是使用静态类,而不是把类的构造函数设置为私有。静态类只能包含静态成员,不需要实例构造函数,因为按照定义,它根本不能实例化。但静态类可以有一个静态构造函数,如上一节所述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: