- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c ch4面向对象程序设计入门.ppt
分类需要使用抽象原则。对类的解释,分类是在OO中对抽象原则的应用 两次抽象得到两个分类:(1)德智体的学生为本科生(分类或归类);(2)入校生分牌桥队、田径队、舞蹈队等 4.3.3 方法的重载 在编程时,一般是一个方法对应一种功能,但有时需要实现同一类功能,只是有些细节不同。例如希望从几个数中找出其中的最大者,而每次数据个数或类型不同,如2个整数,2个双精度数、3个整数、或一个整型数组做为参数。这时,我们可以设计出4个不同名的方法,其形式为: public int MaxIntTwo(int a, int b) { } public double MaxDouble(double a, double b) { } public int MaxIntThree(int a, int b, int c) { } public int MaxArray(int[] a) { } 这时,程序者需要以不同的方法名来命名这些功能类似的方法,而调用者更需记住不同的方法名,不是很方便,在C#中,允许用同一方法名定义多个方法,这些方法的参数个数或参数类型不同,这就是方法的重载(function overloading)。 4.3.3 方法的重载 方法重载有两点要求: (1) 重载的方法名称必须相同; (2) 重载方法的形参个数或类型必须不同,否则将出现一个“已定义了一个具有相同参数类型的成员” 如果要完成上例相似功能的4个方法,重载方法如下: public int Max(int a, int b) { } public double Max(double a, double b) { } public int Max(int a, int b, int c) { } public int Max(int[] a) { } 在调用具有重载的方法时,系统会根据参数的类型或个数确定最匹配的方法被调用。 4.3.3 方法的重载 【实例4-8】利用方法重载实现2个整数,2个双精度数、3个整数中求最大值。 4.4 构造函数 4.4.1 构造函数的声明和调用 4.4.2 构造函数的重载 4.4.3 构造函数与只读字段 4.4.4 对象的生命周期和析构函数 返回 4.4.1 构造函数的声明和调用 构造函数是类中的一种特殊的方法,其一般形式如下: public 构造函数名([参数列表]) { [语句;] } 和普通方法相比,构造函数有两个特别要求,一是构造函数的名称必须和类名相同,二是构造函数不允许有返回类型(包括void类型)。 其中,构造函数的参数列表可省略,也可以不包含任何语句。不包含任何参数和语句的构造函数称为默认构造函数。如果没有定义构造函数,编译器将自动生成默认构造函数由,默认构造函数的形式如下: public 构造函数名(){ } 4.4.2 构造函数的重载 构造函数重载与方法一样可以重载。在一个类中,可以定义多个构造函数,以便对对象提供不同的初始化方法,以满足创建对象时的不同需要。例如,在创建一个Student对象时,只想指定name的值,而age为默认的20。可以声明一个如下所示的构造函数: public Student(string name) { = name; this.age = 20; } 该构造函数和以上面的public Student(string name, int age)构造函数相比,参数的个数不同,是一个合法的构造函数。此时,可以声明一个只有一个实参的对象: Student stu = new Student(郭靖); 4.4.2 构造函数的重载 【实例4-9】利用构造函数重载实现不同对象实例化。 4.4.3 构造函数与只读字段 C#中类的字段成员可通过关键字readonly设置为只读字段,对于标记为只读的字段来说,只有在声明时为它赋值,或者在对象初始化时赋值。在声明时为只读字段赋值与声明常量没有区别,在对象初始化时为只读字段赋值需要使用构造函数实现。 4.4.3 构造函数与只读字段 【实例4-10】公园门票调价问题。 4.4.4 对象的生命周期和析构函数 C#程序中,一个对象是类的一个实例,实际上就是一个引用型的变量,在程序运行过程中,它需要占用一定的内存空间,.NET 的公共语言运行时负责为其分配内存。当程序运行结束后,需要回收它所占用的内存空间。 正
文档评论(0)