5第五节面向对象设计(续)详解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实例方法和静态方法 例 参数传递 我们方法的定义是在类的设计中进行的,方法的使用是在实际运行中进行的,定义方法时使用形式参数(简称形参),而调用方法时,用实际参数(简称实参)取代形式参数,这个过程就叫参数传递。 值传递 引用传递和ref参数 l??引用传递: 实参将自己的引用,也就是自己数据在存储器中的地址拷贝给形参,这时形参如同实参的别名,系统不必为形参开设存储空间,形参在方法中的任何改变就是实参的改变。 所以引用参数既是方法的输入,又是方法的输出,引用传递的形参需要用ref关键字声明,调用方法时的实参也要添加ref关键字。 ref参数在使用前必须先初始化。 例: out参数和params参数 params参数 例 out参数 例: 局部变量 重载 继承 C#中的继承是单继承,C#不支持多继承的机制。在C#中可以通过接口的多继承来模拟问题域的多继承特征。 例 基类与派生类的转换 派生类的成员至少不少于基类的成员,基类有的,派生类都有;但是派生类有的,基类未必有,例如派生类中新添加的成员,基类就没有。如果在需要派生类对象的场合却用基类对象来顶替,那么就可能产生缺少方法、缺少数据等不确定的因素,这是程序的大忌,所以C#语法规定不允许这类情况的发生。 但是,在需要基类对象的场合,由派生类对象顶替,则是允许的。因为不会造成程序的安全问题,却可以增加灵活性。 As 运算符 和系统预定义的类型相似,自定义的类型也可以进行强制类型转换。 as运算符可以进行类型转换运算。 as运算有两个特点: (1)as运算符只能用于引用类型,强制类型转换无此限制; (2)如果转换不成功,as运算的结果是null,而强制类型转换则抛出异常。 例 类的嵌套 在类(或结构)内声明的类型称为嵌套类型或内部类型,而包含着嵌套类的类称为封闭类或外部类型。 声明嵌套类的格式如下例: public class EnclosingClass { //其它成员声明 public class NestedClass { // 嵌套类的成员和代码 } } 由于嵌套类的地位类似于封闭类中的成员,所以对嵌套类的引用需要使用它的全称。 例 抽象类 用关键字abstract修饰的抽象类是一种没有被完整定义的类,因而它不能用来实例化,或者说,不能产生对象,设计abstract类的目的是为了被继承,其意义在于: 包含派生类的公共成员,这些成员只需在抽象类中定义一次,就可以被反复使用,提高了软件开发的效率和可维护性。 规范行为,抽象方法等具体行为特征的成员实质上是一种建模过程,规定了输入口和输出口,而将实现的细节留给派生类根据实际情况编程。 注意点 虽然抽象类不能产生对象,但是抽象类完全可以有构造函数; 抽象类是要被继承的,所以不能和sealed修饰符联用; 抽象类的派生类可以依然是抽象类,只有当派生类实现了所有抽象成员后,才演化为一个普通的类,这时才能产生对象。 抽象方法 用abstract修饰的方法和属性分别称为抽象方法和抽象属性。它们的共同特点是有行为的定义,却没有行为的实现。 使用abstract时要注意如下约束: 1) abstract不能和static并列修饰同一个方法; 2)abstract不能和private并列修饰同一个方法,并且不能省略访问控制符; 3) abstract方法只能出现在abstract类中,并且只有当包含类被继承后,才能在派生类中被实现; 4)派生类实现抽象方法时必须使用关键字override,否则被默认为使用缺省的关键字new。 例 第五节 面向对象设计 孔青青 本章教学目标 方法 继承 重载 抽象类 * 实例方法是指通过对象名调用的方法。 静态方法与类关联,而不是与对象关联,定义静态方法时要使用static关键字,调用静态方法时要使用类名,而不是对象名。 静态方法不能直接访问非静态的字段,静态字段可以被所有方法所访问。 方法由方法头和方法体两部分组成。 实例方法的定义格式为: 修饰符 返回类型 方法名 (参数列表) { 方法体 } 定义静态方法的格式为: 修饰符 static 返回类型 方法名 (参数列表) { 方法体 } l??值传递:实参将值拷贝给形参,系统要为形参开设存储空间,以接受传递的值,此时形参成为一个实在的局部变量,从此实参和形参脱离关系,形参在方法中参与运算,在运算中的发生的任何变化都不会影响实参; 一般情况下,方法的

文档评论(0)

三沙市的姑娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档