第3章面向对象程序设计精选文档.ppt
《第3章面向对象程序设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第3章面向对象程序设计精选文档.ppt(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章面向对象程序章面向对象程序设计设计本讲稿第一页,共五十八页3.1 类类v在面向对象程序设计中,类被作为一种数据结构,是包含数在面向对象程序设计中,类被作为一种数据结构,是包含数据成员、函数成员和嵌套类型的数据结构。据成员、函数成员和嵌套类型的数据结构。v类声明类声明 属性属性 类修饰符类修饰符 class 类名类名类体类体 类修饰符包括类修饰符包括new、public、protected、internal、private、abstract和和sealed。本讲稿第二页,共五十八页【例【例3-1】定义一个】定义一个Person类类本讲稿第三页,共五十八页创建类实例创建类实例 v格式为:格
2、式为:类名类名 实例名实例名=new 类名(参数)类名(参数);v两种形式两种形式Person myTest=new Person();或或Person myTest;myTest=new Person();本讲稿第四页,共五十八页类成员类成员 v类成员分为两大类,类本身定义的成员和从类成员分为两大类,类本身定义的成员和从基类继承来的成员。基类继承来的成员。v类成员包括函数成员和数据成员。类成员包括函数成员和数据成员。1类成员访问修饰符v访问修饰符用于指定类成员的可访问性。v共有public、private、protected和internal四个类成员访问修饰符。本讲稿第五页,共五十八页2静
3、态成员与实例成员v当用当用static修饰符声明成员时,得到静态成员,修饰符声明成员时,得到静态成员,静态成员属于类,为这个类的所有实例所共静态成员属于类,为这个类的所有实例所共享享v不用不用static修饰符声明的成员,称为实例成员,修饰符声明的成员,称为实例成员,实例成员被类的实例所拥有。实例成员被类的实例所拥有。本讲稿第六页,共五十八页构造函数和析构函数构造函数和析构函数 v构造函数用于为对象分配空间,完成初始化工作。构造函数构造函数用于为对象分配空间,完成初始化工作。构造函数特殊性表现在:特殊性表现在:构造函数的名字必须与类名相同;构造函数的名字必须与类名相同;构造函数可以带参数,但没
4、有返回值;构造函数可以带参数,但没有返回值;构造函数在对象定义时被自动调用;构造函数在对象定义时被自动调用;如果没有给类定义构造函数,则编译系统会自动生成一个缺省如果没有给类定义构造函数,则编译系统会自动生成一个缺省的构造函数,其形式如下:的构造函数,其形式如下:public con():base()()构造函数可以被重载,但不可以被继承。构造函数可以被重载,但不可以被继承。本讲稿第七页,共五十八页v实例构造函数用于创建和初始化实例,创建新对象时要调用实例构造函数,其格式为:访问修饰符 类名(形参列表)函数体 v静态构造函数用于初始化静态数据,或用于执行仅需执行一次的特定操作。在创建第一个实例
5、或引用任何静态成员之前,将自动调用静态构造函数。其格式为:static 类名()函数体 本讲稿第八页,共五十八页v析构函数主要用于释放类实例。析构函数特殊性表现在:析构函数的名字与类名相同,但它前面加一个“”符号;析构函数不能够带参数,也没有返回值;当撤销对象时,自动调用析构函数;析构函数不能被继承,也不能被重载。本讲稿第九页,共五十八页【例【例3-3】使用构造函数和析构函数】使用构造函数和析构函数本讲稿第十页,共五十八页方法方法 v方法是表现类或对象行为的成员函数。方法是表现类或对象行为的成员函数。1.方法声明v声明格式:声明格式:方法修饰符方法修饰符 返回类型返回类型 方法名(形参列表)方
6、法名(形参列表)方法体方法体 v修饰符包括:修饰符包括:new、public、protected、internal、private、static、virtual、sealed、override、abstract和和extern。本讲稿第十一页,共五十八页2.方法参数(1)值参数未用任何修饰符声明的参数为值参数。未用任何修饰符声明的参数为值参数。(2)引用参数用用ref修饰符声明的参数为引用参数。在方法中对引用修饰符声明的参数为引用参数。在方法中对引用参数的任何更改都会反映给实参。参数的任何更改都会反映给实参。(3)输出参数用用out修饰符声明的参数称为输出参数。如果希望函数返修饰符声明的参数称
7、为输出参数。如果希望函数返回多个值,可使用输出参数。回多个值,可使用输出参数。本讲稿第十二页,共五十八页【例【例3-4】使用值参数】使用值参数本讲稿第十三页,共五十八页【例【例3-5】使用引用参数】使用引用参数 本讲稿第十四页,共五十八页(4)参数数组v用用params修饰符声明的变量称为参数数组,修饰符声明的变量称为参数数组,它允许向函数传递个数变化的参数。它允许向函数传递个数变化的参数。本讲稿第十五页,共五十八页【例【例3-6】使用输出参数】使用输出参数 本讲稿第十六页,共五十八页【例【例3-7】使用参数数组】使用参数数组 本讲稿第十七页,共五十八页3.静态方法和实例方法v用用static
8、修饰符声明的方法为静态方法,它不修饰符声明的方法为静态方法,它不与实例相关联,它属于类。只需要类名和方与实例相关联,它属于类。只需要类名和方法名就可调用静态方法法名就可调用静态方法v未用未用static修饰符声明的方法为实例方法。它修饰符声明的方法为实例方法。它与特定实例相关联。可以用与特定实例相关联。可以用this来访问该实来访问该实例。实例方法可以访问类中的任何成员。例。实例方法可以访问类中的任何成员。本讲稿第十八页,共五十八页【例【例3-8】使用静态方法和实例方法】使用静态方法和实例方法 本讲稿第十九页,共五十八页4.方法重载v它允许一个类中有同名的方法存在它允许一个类中有同名的方法存在
9、v为了区分这些同名方法,要求方法有不同的为了区分这些同名方法,要求方法有不同的参数,要么参数个数不同,要么参数类型不参数,要么参数个数不同,要么参数类型不同。同。本讲稿第二十页,共五十八页【例【例3-9】使用方法重载】使用方法重载 本讲稿第二十一页,共五十八页5.运算符重载v运算符重载可以对运算符重载可以对C#中已有的运算符赋予新中已有的运算符赋予新的功能。其格式为:的功能。其格式为:public static 返回值类型返回值类型 operator unary-operator(参数列表参数列表)方法体方法体本讲稿第二十二页,共五十八页【例【例3-10】重载】重载Point类的和类的和本讲稿
10、第二十三页,共五十八页6.this关键字vthis 关键字引用类的当前实例,成员通过关键字引用类的当前实例,成员通过this关键字可以知道自己属于哪一个实例。关键字可以知道自己属于哪一个实例。this关键字是一个隐含引用,它隐含于每个关键字是一个隐含引用,它隐含于每个类的成员函数中。类的成员函数中。vthis 的常用用途:的常用用途:限定被相似的名称隐藏的成员限定被相似的名称隐藏的成员 将对象作为参数传递到其他方法将对象作为参数传递到其他方法 声明索引器声明索引器 本讲稿第二十四页,共五十八页字段与属性字段与属性 1.字段v字段表示与对象或类相关联的变量。字段表示与对象或类相关联的变量。v静态
11、字段:用静态字段:用static修饰符声明的字段,无论存在多修饰符声明的字段,无论存在多少个类实例,它们都共享一个静态字段拷贝。少个类实例,它们都共享一个静态字段拷贝。v实例字段:没用实例字段:没用static修饰符声明的字段,类的每个修饰符声明的字段,类的每个实例都包含实例字段的一个拷贝。实例都包含实例字段的一个拷贝。v只读字段:用只读字段:用readonly修饰符声明的字段,它只能在字段修饰符声明的字段,它只能在字段声明或构造函数中赋值,在其它任何地方都不能改变只读声明或构造函数中赋值,在其它任何地方都不能改变只读字段的值。字段的值。本讲稿第二十五页,共五十八页【例【例3-11】使用字段】
12、使用字段本讲稿第二十六页,共五十八页2.属性v属性用于刻画对象的特征或表示对象的状态,它提供对类或对象属性用于刻画对象的特征或表示对象的状态,它提供对类或对象性质的访问。性质的访问。v其格式为:其格式为:访问修饰符访问修饰符 数据类型数据类型 属性名属性名getget访问器代码块访问器代码块setset访问器代码块访问器代码块 v set访问器:给属性赋值,它使用访问器:给属性赋值,它使用value设置属性的值设置属性的值vget访问器:获取属性值,它通过访问器:获取属性值,它通过return返回属性的值。返回属性的值。v如果只有如果只有get访问器,表示是只读属性;如果只有访问器,表示是只读
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 精选 文档
限制150内