面向对象程序设计

上传人:平*** 文档编号:48630272 上传时间:2018-07-18 格式:PPT 页数:63 大小:225.52KB
返回 下载 相关 举报
面向对象程序设计_第1页
第1页 / 共63页
面向对象程序设计_第2页
第2页 / 共63页
面向对象程序设计_第3页
第3页 / 共63页
面向对象程序设计_第4页
第4页 / 共63页
面向对象程序设计_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《面向对象程序设计》由会员分享,可在线阅读,更多相关《面向对象程序设计(63页珍藏版)》请在金锄头文库上搜索。

1、C#程序设计与案例教程 清华大学出版社 第二章 面向对象程序设计C#.NET是一种面向对象的程序设计语言,它 支持面向对象程序设计的许多新特性。面向 对象编程主要思想是将数据以及处理这些数 据的相应方法封装到类中,使用类创建的实 例称为对象。类类型支持继承,派生的类可 以对基类进行扩展和特殊化。1 1版权所有版权所有C#程序设计与案例教程 清华大学出版社 第二章 面向对象程序设计C#.NET是一种面向对象的程序设计语言, 它支持面向对象程序设计的许多新特性。 面向对象编程主要思想是将数据以及处理 这些数据的相应方法封装到类中,使用类 创建的实例称为对象。类类型支持继承, 派生的类可以对基类进行

2、扩展和特殊化。2 2版权所有版权所有C#程序设计与案例教程 清华大学出版社 第二章 面向对象程序设计C#.NET是一种面向对象的程序设计语言 ,它支持面向对象程序设计的许多新特 性。面向对象编程主要思想是将数据以 及处理这些数据的相应方法封装到类中 ,使用类创建的实例称为对象。类类型 支持继承,派生的类可以对基类进行扩 展和特殊化。3 3版权所有版权所有C#程序设计与案例教程 清华大学出版社 目录面向对象的基本思想 类与对象 类的方法与重载 域、属性和索引 继承与多态 抽象类与接口 委托与事件4 4版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.1 面向对象的基本思想 面向对象是一

3、种新兴的程序设计方法,或者 是一种新的程序设计规范,其基本思想是 使用对象、类、继承、封装、消息等基本 概念来进行程序设计;从现实世界中客观 存在的事物(即对象)出发来构造软件系 统,并且在系统构造中尽可能运用人类的 自然思维方式。5 5版权所有版权所有C#程序设计与案例教程 清华大学出版社 1对象的基本概念对象是系统中用来描述客观事物的一个实体,它 是构成系统的一个基本单位。 2类把众多的事物归纳、划分成一些类是人类在认识 客观世界时经常采用的思维方法。分类的原则是 抽象。类是具有相同属性和服务的一组对象的集 合,它为属于该类的所有对象提供了统一的抽象 描述,其内部包括属性和服务两个主要部分

4、。 6 6版权所有版权所有C#程序设计与案例教程 清华大学出版社 3面向对象的基本特征 (1)封装性 (2)继承性 (3)多态性7 7版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.2 类与对象类和对象是面向对象的程序设计语言的核心 和本质。类实际上定义了一种崭新的数据 类型。定义了类之后,就可以使用这种新 的数据类型创建对象。类是对象的模板, 对象是类的实例。使用类的好处在于,它 有利于程序的模块化设计和开发,可以隐 藏内部的实现细节,并能增强程序代码的 重用性。8 8版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.2.1 类的定义 类使用class关键字声明。采用的

5、形式为:类修饰符 class 类名称:基类以及实现的接口 列表 类体 ;9 9版权所有版权所有C#程序设计与案例教程 清华大学出版社 public class Person private string name; private char sex; private int age; public Person(string n,char s,int a) name=n;sex=s;age=a; public void Display() Console.WriteLine(“name:0”,name);Console.WriteLine(“sex:0”,sex);Console.WriteL

6、ine(“age:0”,age); 1010版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.1.2 类的成员 1类的成员分类 n常量:表示与该类相关联的常量值。 n字段:即该类的变量。 n类型:用于表示一些类型,它们是该类的局部类型。 n方法:用于实现可由该类执行的计算和操作。 n属性:用于定义一些命名特性,通过它来读取和写入相关的特性。 n事件:用于定义可由该类生成的通知。 n索引器:使该类的实例可按与数组相同的(语法)方式进行索引。 n运算符:用于定义表达式运算符,通过它对该类的实例进行运算。 n实例构造函数:用于规定在初始化该类的实例时需要做些什么。 n析构函数:用于规定在永

7、久地放弃该类的一个实例之前需要做些什么 。 n静态构造函数:用于规定在初始化该类自身时需要做些什么。 1111版权所有版权所有C#程序设计与案例教程 清华大学出版社 2类成员的可访问性1212版权所有版权所有C#程序设计与案例教程 清华大学出版社 3. 静态成员与实例成员C#的类定义中可以包含两种成员:静态成员和 非静态成员(也即实例成员)。使用了static 修饰符的方法为静态成员,反之则是实例成员 。 1313版权所有版权所有C#程序设计与案例教程 清华大学出版社 (1)使用static修饰符声明属于类型本身而不是属 于特定对象的静态成员。static修饰符可用于字段 、方法、属性、运算符

8、、事件和构造函数,但不 能用于索引器、析构函数或类型。 (2)静态成员属于类,在内存中只有一份,不必建 立该类的实例,通过类名即可使用;而实例成员 属于用该类创建的实例,要通过对象名使用。 (3)非静态方法可以访问类中包括静态方法在内的 所有成员,而静态方法只能访问类中的静态成员 。1414版权所有版权所有C#程序设计与案例教程 清华大学出版社 【案例2-1】雇员类。 该示例读取新雇员的名称和ID,逐个增加雇员计 数器并显示新雇员的有关信息以及新的雇员数。 为简单起见,该程序从键盘读取当前的雇员数。 1515版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.1.3 创建对象与构造函数

9、类声明后,可以创建类的实例,即对象。创建类 的实例需要使用new关键字。类的实例相当于 一个变量,创建类实例的格式如下: 类名 对象名=new 构造函数(参数类表); 例如: Point myPoint = new Point();1616版权所有版权所有C#程序设计与案例教程 清华大学出版社 创建新对象时将调用类的构造函数。构造 函数主要用来为对象分配存储空间,完成 初试化操作(如给类的成员赋值等)。在 C#中,类的构造函数遵循以下规定: (1)构造函数的函数名与类的名称一样。 (2)一个类可以有多个构造函数。 (3)如果类没有构造函数,将自动生成一个 默认的无参数构造函数,并使用默认值初

10、始化对象的字段(例如,int将初始化为 0) 。 1717版权所有版权所有C#程序设计与案例教程 清华大学出版社 (4)类的构造函数可通过初始值设定项来调用基类 的构造函数,例如: public Student(string no, string name,char sex,int age) :base(name, sex,age) (5)类的构造函数也可通过关键字this调用同一个 类的另一个构造函数,例如: public Point(): this(0,20) 1818版权所有版权所有C#程序设计与案例教程 清华大学出版社 【案例2-2】Point类。 定义一个点类Point,建立对象并显

11、示点对。1919版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.3 类的方法与重载2.3.1方法的定义在C#中,数据和操作均封装在类中,数据是以 成员变量的形式出现,而操作主要体现在方法 的使用上。 在类中,方法的一般格式为: 方法修饰符 返回值类型 方法名(参数列表) 方法体 2020版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.3.2方法的参数类型 C#方法的参数有四种类型:值参数、引用参数、输 出参数和参数数组。 未用任何修饰符声明的参数为值参数。值参数在调 用该参数所属的函数成员(方法、实例构造函数 、访问器和运算符)时创建,并用调用中给定的 实参值初始化。当

12、从该函数返回时值参数被销毁 。对值参数的修改不会影响到原自变量。值参数 通过复制原自变量的值来初始化。2121版权所有版权所有C#程序设计与案例教程 清华大学出版社 用params修饰符声明的变量称为参数数组, 它允许向函数传递个数变化的参数。在方 法的参数类表中只允许出现一个参数数组 ,而且在方法同时具有固定参数和参数数 组的情况下,参数数组必须放在整个参数 列表的最后,同时参数数组只允许是一维 数组。不能将params修饰符与ref和out修饰 符组合起来使用。2222版权所有版权所有C#程序设计与案例教程 清华大学出版社 用ref修饰符声明的参数为引用参数。引用参数就是 调用者提供的自变

13、量的别名。引用参数并不定义 自的变量,而是直接引用原自变量,因此对引用 参数的修改就将直接影响相应自变量的值。在函 数调用中,引用参数必须被赋初值。 用out修饰符定义的参数称为输出参数。如果希望函 数返回多个值,可使用输出参数。输出参数与引 用参数类似,它并不定义自己的变量,而是直接 引用原变量,这样当在函数内为输出参数赋值时 ,就相当于给原自变量赋值。与引用参数的差别 在于:输出参数在调用方法前无需对变量进行初 始化。 2323版权所有版权所有C#程序设计与案例教程 清华大学出版社 【案例2-3】演示方法参数。 本案例演示方法的四类参数。 2424版权所有版权所有C#程序设计与案例教程 清

14、华大学出版社 2.3.3 静态方法和实例方法n类的方法前加了static关键字,则该方法为静态 方法,反之为实例方法。静态方法为类所有, 可以通过对象来使用,也可以通过类来使用。 但一般提倡通过类名来使用,因为静态方法只 要定义了类,不需用建立类的实例就可使用。 静态方法只能使用类的静态成员。n实例方法必须通过类的实例来使用。实例方法 可以使用类的非静态成员,也可以使用类的静 态成员。2525版权所有版权所有C#程序设计与案例教程 清华大学出版社 【案例2-4】演示静态方法和实例方法。 2626版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.3.4 方法重载类中两个以上的方法(包括

15、隐藏的继承而 来的方法)取的名字相同,只要使用的参 数类型或者参数个数不同,编译器便知道 在何种情况下应该调用哪个方法,这就叫 做方法的重载。2727版权所有版权所有C#程序设计与案例教程 清华大学出版社 【案例2-5】方法重载。 本案例定义了一个OverTest类。在该类中, 重载了Area方法。 2828版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.3.5 运算符重栽运算符也是C#类的一个重要成员,系统对大 部分运算符都给出了常规定义,这些定义大部 分和现实生活中这些运算符的意义相同。但可 以根据需要给这些运算符赋予一个新的含义, 这就是运算符重载。运算符重载允许为运算指 定

16、用户定义的运算符实现,其中一个或两个操 作数是用户定义的类或结构类型。C#中运算 符重载的基本格式如下: 返回值类型 operator 运算符(运算对象列表) 重载的实现部分; 2929版权所有版权所有C#程序设计与案例教程 清华大学出版社 【案例2-6】复数类。 本案例定义了一个复数类,展示了如何使用 运算符重载复数加法运算。 3030版权所有版权所有C#程序设计与案例教程 清华大学出版社 2.3.6 this关键字this关键字引用类的当前对象,成员通过this关 键字可以知道自己属于哪一个实例。this关键 字是一个隐含引用,它隐含于每个类的成员函 数中。但需要注意的是静态函数没有this关键 字。this关键字可用于从构造函数、实例方法 和实例访问器中访问成员。3131版权所有版权所有C#程序设计与案例教程 清华大学出版社 以下是this的常用用途。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号