第3章 面向对象编程基础ppt课件

上传人:我*** 文档编号:149210591 上传时间:2020-10-25 格式:PPT 页数:51 大小:689KB
返回 下载 相关 举报
第3章 面向对象编程基础ppt课件_第1页
第1页 / 共51页
第3章 面向对象编程基础ppt课件_第2页
第2页 / 共51页
第3章 面向对象编程基础ppt课件_第3页
第3页 / 共51页
第3章 面向对象编程基础ppt课件_第4页
第4页 / 共51页
第3章 面向对象编程基础ppt课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《第3章 面向对象编程基础ppt课件》由会员分享,可在线阅读,更多相关《第3章 面向对象编程基础ppt课件(51页珍藏版)》请在金锄头文库上搜索。

1、第3章 面向对象编程基础,3.1 面向对象概念,3.2 类,3.3 方法,3.4 属性,3.5 综合应用实例,3.1 面向对象概念,类可以派生形成子类(派生类),派生子类的类称为父类。对应一个系统最基本的类称为基类,一个基类可以有多个派生类,从基类派生出的类(子类)还可以进行派生。 例如: 基类:汽车类 汽车类子类:卡车、客车、轿车等 汽车类属性:车轮、方向盘、发动机、车门等 汽车类方法:前进、倒退、刹车、转弯、听音乐、导航等 汽车类事件:车胎漏气、油用到临界、遇到碰撞等 对象是类的具体化,是具有属性和方法的实体(实例)。对象通过唯一的标识名以区别于其他对象,对象有固定的对外接口,它是对象与外

2、界通信的通道。 例如: 汽车类对象:比亚迪F6、奥迪A6L等。,3.1.1 对象、类、实例化,类是在对象之上的抽象,它为属于该类的全部对象提供了统一的抽象描述。所以类是一种抽象的数据类型,它是对象的模板,对象则是类的具体化,是类的实例。例如:“TCL电视机”是电视机类的一个实例”。 类与对象的关系如图3.1所示。,3.1.2 面向对象程序设计语言的三大原则,面向对象编程(Object-Oriented Programming)简称OOP技术,是开发计算机应用程序的一种新方法、新思想。现实世界中任何类的对象都具有一定的属性和操作,也总能用数据结构与算法两者合一地来描述,所以可以用下面的等式来定义

3、对象和程序: 对象=(算法+数据结构) 程序=(对象+对象+),3.1.2 面向对象程序设计语言的三大原则,1. 封装 封装的对象之间进行通讯的一种机制叫做消息传递。消息是向对象发出的服务请求,是面向对象系统中对象之间交互的途径。消息包含要求接收对象去执行某些活动的信息,以及完成要求所需的其他信息(参数)。发送消息的对象不需要知道接收消息的对象如何对请求予以响应。接收者接收了消息,它就承担了执行指定动作的责任,作为消息的答复,接收者将执行某个方法,来满足所接收的请求。,3.1.2 面向对象程序设计语言的三大原则,2. 继承 继承是面向对象编程技术的一块基石,通过它可以创建分等级层次的类。例如,

4、创建一个汽车的通用类,它定义了汽车的一般属性(如:车轮、方向盘、发动机、车门)和操作方法(如:前进、倒退、刹车、转弯等)。从这个已有的类可以通过继承的方法派生出新的子类,卡车、轿车、客车等,它们都是汽车类的更具体的类,每个具体的类还可增加自己一些特有的东西。如图3.2所示,更一般地表示如图3.3所示。,3.1.2 面向对象程序设计语言的三大原则,如果一个类有两个或两个以上直接基类,这样的继承结构被称为多重继承或多继承。在现实世界中这种模型屡见不鲜,如:一些组合功能的产品像沙发床,它既有沙发的功能,又有床的功能,沙发床应允许同时继承沙发和床的特征。如图3.4所示,更一般地表示如图3.5所示,3.

5、1.2 面向对象程序设计语言的三大原则,尽管多继承从形式上看比较直观,但在实现上多继承可能引起继承操作或属性的冲突。当今的很多语言已不再支持多继承,C#语言也对多继承的使用进行了限制,它通过接口来实现。接口可以从多个基接口继承。接口可以包含方法、属性、事件和索引器。一个典型的接口就是一个方法声明的列表,接口本身不提供它所定义的成员的实现。所以接口不能被实例化,一个实现接口的类再以适当的方式定义接口中声明的方法。如图3.6所示。,3.1.2 面向对象程序设计语言的三大原则,3. 多态性 多态性就其字面上的意思是:多种形式或多种形态。在面向对象编程中,多态是指同一个消息或操作作用于不同的对象,可以

6、有不同的解释,产生不同的执行结果。例如,问甲同学:“现在几点钟”,甲看一看表回答说:“3点15分”,又问乙同学:“现在几点钟”,乙想一想回答说:“大概3点多钟”,又问丙同学:“现在几点钟”,丙干脆回答说:“不知道”。这就是同一个消息发给不同的对象,不同的对象可以做出不同的反应。,3.2 类,3.2.1 类的声明 要定义一个新的类,首先要声明它。 语法形式: 属性集信息opt 类修饰符opt class 类名 : 类基 opt 类主体 opt ,3.2.1 类的声明,其中: 属性集信息:是C#语言提供给程序员为程序中定义的各种实体附加一些说明信息,这是C#语言的一个重要特征。 类修饰符:可以是以

7、下表3.1所列的几种之一或者是它们的有效组合,但在类声明中,同一修饰符不允许出现多次。 类基:它定义该类的直接基类和由该类实现的接口。当多于一项时,用逗号“,”分隔。如果没有显式地指定直接基类,那么它的基类隐含为object。,3.2.1 类的声明,最简单的类声明语法形式: class 类名 类成员 例如: class Point / Point类的访问权限缺省为public int x, y; ,3.2.2 类的成员,类的定义包括类头和类体两部分,其中类体用一对大花括号 括起来,类体用于定义该类的成员。 类体语法形式: 类成员声明 opt 类成员由两部分组成,一个是类体中以类成员声明形式引入

8、的类成员,另一个则是直接从它的基类继承而来的成员。,3.2.2 类的成员,1常数声明 常数声明一般语法形式: 属性集信息 opt 常数修饰符 opt const 类型 标识符 = 常数表达式 ,标识符 = 常数表达式 0+ 其中: 常数修饰符可以是:new、public、protected、internal、private。 类型必须是:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string、枚举类型或引用类型。常数表达式的值类型应与目标类型相一致,或者可以通过隐式转换转换成目标类型。

9、例如: class A_const public const int X=10; const double PI=3.14159; / 缺省访问修饰符,即约定为private const double Y= 0.618+3.14; ,3.2.2 类的成员,常数表达式的值应该是一个可以在编译时计算的值,常数声明不允许使用static修饰符,但它和静态成员一样只能通过类访问。 例如: class Test public static void Main( ) A_const m = new A_const ( ); Console.WriteLine (X=0, PI=1,Y=2, A_const

10、.X , A_const.PI A_const.Y); ,3.2.2 类的成员,2字段声明 字段声明的一般语法形式: 属性集信息 opt 字段修饰符 opt 类型 变量声明列表; 其中: 变量声明列表:标识符或者用逗号“,”分隔的多个标识符,并且变量标识符还可用赋值号“=”设定初始值。 例如: class A int x=100 , y = 200; float sum = 1.0; 字段修饰符为:new、public、protected、internal、private、static、readonly、volatile。,3.2.2 类的成员,【例3.1】通过构造函数对只读字段赋值。 运行结

11、果如图3.7所示。,3.2.3 构造函数,1实例构造函数声明 实例构造函数的声明语法形式: 属性集信息 opt 构造函数修饰符 opt 标识符 ( 参数列表 opt ) : base ( 参数列表 opt ) opt : this ( 参数列表 opt ) opt 构造函数语句块 其中: 构造函数修饰符:public、protected、internal、private、extern。 标识符( 参数列表 opt ):标识符是构造函数名,必须与这个类同名,不声明返回类型,并且没有任何返回值。,3.2.3 构造函数,【例3.2】Time类的构造函数及其重载。 关于构造函数,还要说明以下几点: :

12、 base ( 参数列表 opt ):表示调用直接基类中的实例构造函数。 : this ( 参数列表 opt ):表示调用该类本身所声明的其它构造函数。 构造函数语句块:既可以对静态字段赋值,也可以对非静态字段进行初始化。但在构造函数体中不要做对类的实例进行初始化以外的事情,也不要尝试显式地调用构造函数。 实例构造函数是不能被继承的。如果一个类没有声明任何的实例构造函数,则系统会自动提供一个默认的实例构造函数。,3.2.3 构造函数,【例3.3】构造函数初始化。 实例对象创建时,根据不同的参数调用相应的构造函数完成初始化。 运行结果如图3.8所示。,3.2.3 构造函数,【例3.4】Point

13、类只定义了一个带两个参数的构造函数。 在创建Point对象a时,编译会报告出错信息,如图3.9所示。,3.2.3 构造函数,下面程序描述了派生类构造函数的格式,以及在初始化对象时构造函数的调用次序。 【例3.5】派生类构造函数及其调用。 运行结果如图3.10所示。,3.2.3 构造函数,2 静态构造函数声明 静态构造函数的声明语法形式: 属性集信息 opt 静态构造函数修饰符 opt 标识符 ( ) 静态构造函数体 其中: 静态构造函数修饰符: extern static 或者 static extern 如果有extern修饰,则说明这是一个外部静态构造函数,不提供任何实际的实现,所以静态构

14、造函数体仅仅是一个分号。 标识符( ):标识符是静态构造函数名,必须与这个类同名,静态构造函数不能有参数。 静态构造函数体:静态构造函数的目的是用于对静态字段进行初始化,所以它只能对静态数据成员进行初始化,而不能对非静态数据成员进行初始化。,3.2.3 构造函数,【例3.6】静态构造函数。 namespace Ex3_6 class Screen static int Height; static int Width; int Cur_X, Cur_Y; static Screen() / 静态构造函数,对类的静态字段初始化 Height = 768; Width = 1024; class

15、Program . ,3.2.4 析构函数,声明语法形式: 属性集信息 opt extern opt 标识符 ( ) 析构函数体 其中: 标识符必须与类名相同,但为了区分构造函数,前面需加“”表明它是析构函数。 析构函数不能写返回类型,也不能带参数,因此它不可能被重载,当然它也不能被继承,所以一个类最多只能有一个析构函数。,3.2.4 析构函数,【例3.7】析构函数的调用次序。 运行结果如图3.11所示。,3.3 方法,3.3.1 方法的声明 方法是按照一定格式组织的一段程序代码,在类中用方法声明的方式来定义。 方法声明语法形式: 属性集信息 opt 方法修饰符 opt 返回类型 方法名 (

16、形参表 opt ) 方法体 ,3.3.1 方法的声明,其中: 方法修饰符有如表3.2所示。,3.3.1 方法的声明,方法修饰符中public、protected、private、internal、protected internal属于访问修饰符,用于表示访问的级别,默认情况下,方法的访问级别为public。访问修饰符也可以和其它的方法修饰符有效地组合在一起,但某些修饰符是互相排斥的。表3.3所列的组合被视为非法。,3.3.1 方法的声明,返回类型:方法可以返回值也可以不返回值,如果返回值,则需要说明返回值的类型,它可以是任何一种C#的数据类型,在方法体内是通过return语句将数据交给调用者。如果方法不返回值,则它的返回类型可标为void,当然缺省情况下,默认为 void。 方法名:每个方法都有一个名称,一般可以按标识符的起名规则随意给定方法名,不过要记住Main()是为开始执行程序的方法预留的,另外不要使用C#的关键字作为方法名。为了使方法

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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