无私分享(C#高级编程第6版doc)第03章 对象和类型费

无私分享(C#高级编程第6版doc)第03章 对象和类型费

ID:42388978

大小:167.00 KB

页数:22页

时间:2019-09-14

无私分享(C#高级编程第6版doc)第03章 对象和类型费_第1页
无私分享(C#高级编程第6版doc)第03章 对象和类型费_第2页
无私分享(C#高级编程第6版doc)第03章 对象和类型费_第3页
无私分享(C#高级编程第6版doc)第03章 对象和类型费_第4页
无私分享(C#高级编程第6版doc)第03章 对象和类型费_第5页
资源描述:

《无私分享(C#高级编程第6版doc)第03章 对象和类型费》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目录第3章对象和类型23.1 类和结构23.2 类成员23.2.1 数据成员23.2.2 函数成员23.2.3 只读字段143.3 匿名类型163.4 结构163.4.1 结构是值类型173.4.2 结构和继承183.4.3 结构的构造函数183.5 部分类183.6 静态类193.7 Object类203.7.1 System.Object方法203.7.2 ToString()方法203.8 扩展方法223.9 小结22第3章对象和类型到目前为止,我们介绍了组成C#语言的主要内容,包括变量、数据类型和程序流语句,并简要介绍了一个只包含Main()方法的完整小例子。但还没有介

2、绍如何把这些内容组合在一起,构成一个完整的程序,其关键就在于对类的处理。这就是本章的主题。本章的主要内容如下:● 类和结构的区别● 类成员● 按值和引用传送参数● 方法重载● 构造函数和静态构造函数● 只读字段● 部分类● 静态类● Object类,其他类型都从该类派生而来第4章将介绍继承以及与继承相关的特性。提示:本章将讨论与类相关的基本语法,但假定您已经熟悉了使用类的基本原则,例如,知道构造函数和属性的含义,因此我们只是大致论述如何把这些原则应用于C#代码。本章介绍的这些概念不一定得到了大多数面向对象语言的支持。例如对象构造函数是您熟悉的、使用广泛的一个概念,但静态构造函数

3、就是C#的新增内容,所以我们将解释静态构造函数的工作原理。3.1 类和结构类和结构实际上都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了每个类对象(称为实例)可以包含什么数据和功能。例如,如果一个类表示一个顾客,就可以定义字段CustomerID、FirstName、LastName和Address,以包含该顾客的信息。还可以定义处理存储在这些字段中的数据的功能。接着,就可以实例化这个类的对象,以表示某个顾客,并为这个实例设置这些字段,使用其功能。classPhoneCustomer{publicconststringDayOfSendingBil

4、l="Monday";publicintCustomerID;publicstringFirstName;publicstringLastName;}结构与类的区别是它们在内存中的存储方式(类是存储在堆(heap)上的引用类型,而结构是存储在堆栈(stack)上的值类型)、访问方式和一些特征(如结构不支持继承)。较小的数据类型使用结构可提高性能。但在语法上,结构与类非常相似,主要的区别是使用关键字struct代替class来声明结构。例如,如果希望所有的PhoneCustomer实例都存储在堆栈上,而不是存储在托管堆上,就可以编写下面的语句:structPhoneCustome

5、rStruct{publicconststringDayOfSendingBill="Monday";publicintCustomerID;publicstringFirstName;publicstringLastName;}对于类和结构,都使用关键字new来声明实例:这个关键字创建对象并对其进行初始化。在下面的例子中,类和结构的字段值都默认为0:PhoneCustomermyCustomer=newPhoneCustomer();    //worksforaclassPhoneCustomerStructmyCustomer2=newPhoneCustomerStruc

6、t();//worksforastruct在大多数情况下,类要比结构常用得多。因此,我们先讨论类,然后指出类和结构的区别,以及选择使用结构而不使用类的特殊原因。但除非特别说明,否则就可以假定用于类的代码也适用于结构。3.2 类成员类中的数据和函数称为类的成员。Microsoft的正式术语对数据成员和函数成员进行了区分。除了这些成员外,类还可以包含嵌套的类型(例如其他类)。类中的所有成员都可以声明为public(此时可以在类的外部直接访问它们)或private(此时,它们只能由类中的其他代码来访问)。与VisualBasic、C++和Java一样,C#在这个方面还有变化,例如pr

7、otected(表示成员仅能由该成员所在的类及其派生类访问),第4章将详细解释各种访问级别。3.2.1 数据成员数据成员包含了类的数据--字段、常量和事件。数据成员可以是静态数据(与整个类相关)或实例数据(类的每个实例都有它自己的数据副本)。通常,对于面向对象的语言,类成员总是实例成员,除非用static进行了显式的声明。字段是与类相关的变量。在前面的例子中已经使用了PhoneCustomer类中的字段。一旦实例化PhoneCustomer对象,就可以使用语法Object.FieldName

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。