- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第03章面向对象思维方式 与 Object-Oriented Programming
本章主要内容 类与对象 字段、属性和方法 方法的重载、隐藏与重写 继承与多态 索引 接口 委托与事件 结构与枚举 面向对象的基本概念 面向对象思维方式 与 Object-Oriented Programming Class 与 Object 面向对象三个基本特征 :封装、继承和多态 Class 1、使用class关键字声明,其声明格式为: [类修饰符] class 类名 [:基类] { //类成员 }[;] 2、 P43类的修饰符: abstract、sealed 。 类的成员 属性(字段) 方法 构造函数 析构函数 索引器 事件 类成员访问性 P45 Public private Protected Internal(允许同一个命名空间中的类访问 ) readonly 静态成员与实例成员 静态成员属于类所有,为这个类的所有实例所共享,无论这个类创建了多少个副本,一个静态成员在内存中只占有一块区域。 静态成员的访问格式:类名.静态成员名。 构造函数和析构函数 构造函数的名称与类的名称一样。 一个类可以有多个构造函数。 如果在类中没有显式地定义一个构造函数,编译器也会为其生成一个默认的构造函数,并使用默认值初始化对象的字段 如果只定义了带参数的构造函数,则在创建对象时必须指定相应的参数。 字段 字段的英文为field,又译为变量、域。 字段在实际使用时一般都置为私有的,以提高数据的封装程度。 加static修饰的字段是静态字段,为类的所有对象所共用 加readonly修饰符的字段是只读字段,对它的赋值只能在声明的同时进行,或者通过类的构造函数实现。 属性 属性定义格式如下: [访问修饰符] 属性类型 属性名 { get{} set{} } 方法 什么是方法?其作用是什么? 方法定义与调用 形参与实参 四种参数类型,即值类型、引用类型、输出参数和数组参数 静态方法与实例方法 方法的定义 [方法修饰符] 返回值类型 方法名([形式参数列表]) { //方法体; } 方法参数 形参与实参 参数类型 值参数:不含任何修饰符 引用参数:以ref修饰符声明 输出参数:以out修饰符声明 数组型参数:以params修饰符声明 静态方法与实例方法 静态方法不属于类的某一个具体实例,而是属于类本身。调用静态方法不需要创建一个类的实例。 在静态方法中不能使用非静态成员,而非静态方法可以调用类中的任何成员。 方法的重载 方法签名:指调用方法所需要的方法名称、参数个数、参数类型、顺序和修饰符,但不包括返回类型和参数名称。 方法重载:方法名称相同,但签名不同。 方法的隐藏 定义:如果在派生类中定义了一个与基类具有完全相同签名的方法,则派生类中的方法就会隐藏基类中的同名方法。 如果派生类与基类的方法同名,则编译时给出一个警告,要求在同名的派生类方法前加上关键字new。 方法的重写 方法重写:要使基类中的方法可以被重写,需要在基类方法声明中加上关键字virtual,在派生类中重写的方法声明中需要加上关键字override。 基类与派生类中的方法签名必须完全一致。 对于基类的虚方法,其派生类可以不必重写(覆盖)。 方法的重写 在类定义中,只要类体中包含一个抽象方法,该类必为抽象类。抽象方法只是一个接口而不包括实现,这样的方法唯一的作用就是让派生类重写。 抽象类的派生类必须重写基类中的抽象方法。这是抽象方法与虚方法的不同。 继承 单继承 继承是可传递的 子类自动地从父类那里继承所有成员,与成员的访问方式无关。访问方式只能决定派生类能否访问它们,即可见性。 抽象类与抽象方法 抽象类使用abstract 修饰符 抽象类只能作为其它类的基类,它不能直接被实例化 。 抽象方法一定属于抽象类,但抽象类中却并不一定非要包含抽象方法。 密封类 sealed class是不允许其他类继承的类 通常是一些有固定作用、用来完成某种标准功能的类 。 提高性能 。 委托(delegate) 委托(delegate)属于引用类型,其作用类似C++中的“函数指针” 。 委托既可以引用静态方法也可以引用实例方法 。 委托最大特点是,它不知道或不关心自己引用的对象的类。任何对象中的方法都可以通过委托动态地调用,而仅仅要求方法的参数类型和返回类型与委托的参数类型和返回类型相匹配而已 。 委托的多播 using System; namespace delegate_sample { delegate void Delegt(int x, int y); public class MyClass { public void Sum(
文档评论(0)