Visual C# 2005程序设计教程 作者 978-7-302-19477-4 ch06.pptVIP

  • 4
  • 0
  • 约4.45千字
  • 约 19页
  • 2015-12-13 发布于广东
  • 举报

Visual C# 2005程序设计教程 作者 978-7-302-19477-4 ch06.ppt

在小册子 * AutoCAD计算机辅助设计 C#程序设计教程 清华大学出版社 第6章 域、属性与事件 本章要点: 域的定义及使用 属性的概念 委托的概念与使用 事件 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 6.1 域 域(Field)又称成员变量(Member Variable),它表示类属性的存储位置,是C#类中不可缺少的一部分。域的声明格式如下: [域修饰符] 域类型 域名 域的修饰符包括new、public、protected、internal、private、static、readonly等,分别代表不同的含义。 6.1 域 6.1.1 域的初始化 C#编译器缺省将每一个域初始化为它的默认值。 C#推荐的做法是在实例化对象的同时对对象域进行初始化。 C#中对域进行初始化有两种: 声明的同时进行初始化 在构造器内进行初始化。 域的默认初始化将分为两种情况。对于静态域,类在装载时对其进行初始化;而对于非静态域,在类的实例创建时进行初始化。在默认的初始化之前,域的值是不可预测的。 6.1 域 6.1.2 只读域与readonly关键字 域的声明中如果加上了readonly修饰符表明该域为只读域。只读域只能在域的定义中和它所属类的构造函数中进行修改,在其它情况下是只读的。 只读域具有如下特征: 只读域只能在初始化(声明初始化或构造器初始化)的过程中赋值,其他地方不能进行对只读域的赋值操作,否则编译器会报错。 只读域可以是实例域也可以是静态域。 只读域的类型可以是C#语言的任何类型。 6.2 属性 属性是对现实世界中实体特征的抽象,它提供了一种对类或对象的特性的访问机制。属性所描述的是状态信息,在类的某个实例中,属性的值表示该对象相应的状态值。 属性是C#中独具特色的新功能。通过属性来读写类中的域,这种机制具有一定的保护功能。在其它语言中,对域的访问功能通常是通过实现特定的getter和setter方法来实现的。 6.2 属性 6.2.1 属性的声明 C#中属性采用如下方式进行声明: [属性修饰符] 属性的类型 属性名称{访问声明} {? set{}; get{}; } 属性的修饰符包括: static:静态属性,一个静态属性与特定的实例无关,并且在静态属性的访问符中使用this是错误的。在一个静态属性中包括virtual、abstract或override 修饰符也是错误的。一个非静态(实例)属性与一个类中特定的实例相关,并且这个实例可以被属性访问符中的this访问。 6.2 属性 6.2.1 属性的声明 virtual:虚拟属性,虚拟属性的执行可以被派生类改变。改变一个继承的虚拟方法执行的过程被称为属性重载。 相反,非虚拟属性的执行是不变的:不管属性是否在所声明的类的实例或派生类的实例中被访问,执行都是相同的。 override:覆盖属性,一个覆盖属性用相同的签名覆盖一个继承的虚拟属性。然而一个虚拟属性声明引入一个新属性,一个覆盖属性声明通过提供这个属性访问符或访问符的新执行来对存在的继承德虚拟属性进行特殊化。 6.2 属性 6.2.1 属性的声明 abstract:抽象属性。一个抽象属性隐含的也是一个虚拟属性。 一个抽象属性声明引入一个新虚拟属性,但是没有提供属性访问符或访问符的执行。作为替代,非抽象派生类需要为访问符或覆盖的属性的访问符提供它们自己的执行。因为一个抽象属性声明的访问符不提供实际执行,它的访问符主体就完全由分号组成。 抽象属性声明只被允许存在于抽象类中,一个抽象属性声明包括static或virtual修饰符是错误的。 6.2 属性 6.2.1 属性的声明 根据get和set访问器是否存在,属性可分成如下类型。 读写(read-write)属性:同时包含 get 访问器和 set 访问器的属性。 只读(read-only)属性:只具有 get 访问器的属性。将只读属性作为赋值目标会导致编译时错误。 只写(write-only)属性:只具有 set 访问器的属性。除了作为赋值的目标外,在表

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档