第5章 面向对象程序的设计.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 面向对象程序的设计

C#程序设计 类: 相对对象而言,类似于蓝图 包含方法和数据 课堂讨论 先有对象还是先有类? 定义类 类的修饰符 public(公有类):表示外界可以不受限制地对该类访问; private(私有类):表示只有本类才能访问; new(新建类):表示类由基类中继承而来、与基类中同名的成员; protected(保护类):表示只能对其所在类和从该类派生的子类进行访问; internal(内部类): 表示仅能访问本程序; abstract(抽象类):说明该类可以用来做其他类的基类,可以继承但不能单独使用; Scaled(密封类):说明该类不能作为其他类的基类,不能派生新的类;省略类修饰符则表示为private 。 总结 对类名推荐使用Pascal命名规范:每个单词的首字母要大写。 创建并初始化对象 类成员 在类的定义中,包含有各种类成员,概括起来类的成员有两种:存储数据的成员与操作数据的成员。存储数据的成员叫“字段”,操作数据成员又有很多种。 “字段”是类定义中的数据,也叫类的变量。在C#中,字段以图标 表示。 “属性”用于读取和写入“字段”值。在C#中,属性以图标 表示 。 “方法”实质上就是函数,通常用于对字段进行计算和操作,即对类中的数据进行操作,以实现特定的功能。在C#中,方法以图标表示,事件方法以图标 表示。 “构造函数”是在用类声明对象时,完成对象字段的初始化工作。 类的方法表示一类事物所具备的动作,在C#中就是类或对象为完成一项任务而执行的指令序列。 在编写程序中使用方法主要是便于修改、增加可读性,方法可以重用和封装。 编写方法 编写方法前的准备工作: 该方法主要是实现什么功能?根据功能起一个容易记的方法名。 实现该方法需要用户提供什么数据?确定方法的参数。 如计算n!,就需要给该方法传入一个整数n。 该方法是实现操作或是计算? 若是操作,方法的返回类型可以定为void 若是计算,需要确定需要给调用者返回一个什么类型的结果。如求n!需要给调用者返回一个长整型的阶乘值。 方法的最后一个执行语句应当是: (若是操作可以省略) return 表达式; 编写方法 编写方法前的准备工作: 该方法可以给哪些人使用: public:所有人都可以使用 private:只能给本类使用 protected:可以给本类和派生类使用 方法要写在类(class)中。 编写方法 方法定义的格式 方法参数按值传递 方法参数按值传递 通过引用传递参数 通过引用传递参数 编译器通过识别方法的签名来区分调用哪个方法。 方法的签名包括方法名、参数的类型、个数和顺序 对以下重载的方法,编译器能够正确识别: 对以下方法,编译器无法识别,会报错: 课堂讨论 这样的设计对于使用者来说,不方便了。因为他要分别记住2个方法,哪个方法是设置值的,哪个方法是获取值的。 有没有一种途径,它可以让使用者像使用公共的字段一样方便,又能让设计者能够进行安全地检查? 属性是一种用于访问类或对象性质的成员,它与字段不同的是属性不表示存储位置,不直接操作类的数据内容,而是通过访问器进行访问。 使用属性可以像使用公共数据成员一样,这样既可以使类中数据被轻松访问,又可以避免随意访问类中公共数据而出现的安全性问题,提高了程序安全可靠性,充分体现了对象的封装性。 如果只提供 get访问器, 那么这个属性是只读的。 如果只提供 set访问器,那么这个属性是只写的。 建议: 将所有字段都定义为private。 如果字段需要公开,请使用属性将其公开。 属性访问方法与类的字段成员访问方法一样,根据属性声明时是否为静态有下列两种访问形式。 非静态属性成员访问:对象名.属性名 静态属性成员访问:类名.属性名 构造函数是特殊的方法,用来实现对象的初始化 与类同名 没有返回值 构造函数用于,当实例化一个对象时,会对类的成员进行初始化。 如果我们想使对象初始化时,可以按照设计者的预期来进行,就需要自己书写构造函数的代码。 若上述任务5.6中的Triangle类,我们想初始化的三边长 是0,构造函数可以定义为: class Triangle { …… public Triangle(double sA) //构造函数 { sideA = sideB = sideC = sA; } …… } …… Triangle tri1 = new Triangle(0); class T

文档评论(0)

erterye + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档