程序设计(高职计算机专业系列教材)第四章c面向对象编程课件

上传人:aa****6 文档编号:54722221 上传时间:2018-09-18 格式:PPT 页数:38 大小:164.50KB
返回 下载 相关 举报
程序设计(高职计算机专业系列教材)第四章c面向对象编程课件_第1页
第1页 / 共38页
程序设计(高职计算机专业系列教材)第四章c面向对象编程课件_第2页
第2页 / 共38页
程序设计(高职计算机专业系列教材)第四章c面向对象编程课件_第3页
第3页 / 共38页
程序设计(高职计算机专业系列教材)第四章c面向对象编程课件_第4页
第4页 / 共38页
程序设计(高职计算机专业系列教材)第四章c面向对象编程课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《程序设计(高职计算机专业系列教材)第四章c面向对象编程课件》由会员分享,可在线阅读,更多相关《程序设计(高职计算机专业系列教材)第四章c面向对象编程课件(38页珍藏版)》请在金锄头文库上搜索。

1、第四章 C#面向对象编程,4.1 类、对象和实例 4.2 类的数据成员 4.3 类的函数成员 4.4 继承和接口 4.5 命名空间 4.6 常见C#类操作实例,本章教学要求:,本章主要学习类、对象和实例,以及类的数据成员和函数成员、继承和接口的定义和实现以及命名空间的概念及使用。这些以及上一章的委托和事件的定义及实现将为全书后续章节的学习奠定良好的基础。,第四章 C#面向对象编程,C#是Microsoft公司为.NET量身定做的最好的编程语言,C#语言具有面向对象编程语言的所有特性,如封装、继承、多态等。,4.1 类、对象和实例,4.1.1 一个简单的C#类程序 C#程序的开发方式通常有两种:

2、 一种是使用Visual Studio.NET提供的集成开发环境IDE进行开发。,上机步骤为: (1)进入VS.NET提供的集成开发环境IDE/选择“文件”/“新建”/“项目”菜单项/打开“新建项目”对话框/“项目类型”选为“Visual C#项目”;“模板”选择“控制台应用程序”/修改项目所在的目录位置,并给项目命名(如AAA)。 (2)编辑用户类名.CS文件(作法是将下面例4.1-4.7中所给代码全部替换原先自动生成的代码)/存盘/在解决方案资源管理器中右击AAA项目,然后单击“设为启动项目”。 (3)在“调试”菜单上,单击“开始执行(不调试)”。即可看到运行结果的黑色屏幕输出。,另一种是

3、使用文本编辑器编写C#程序代码,然后以.cs为扩展名保存源文件,并用命令行编辑器程序csc.exe进行编译。于是,C#编译器在类文件*.cs所在的目录下就会生成了一个.exe文件。运行这个.exe文件,并完成人机对话操作就会输出程序的运行结果。,注意:C#开发程序的两种方式在本章均可采用,由于篇幅所限,本章主要用第二种即文本编辑器方式介绍,而第一种即控制台方式也可自行上机采用。,例4.1创建一个小对话程序。 using System; /用来导入命名空间(Namespace)以表明类的层次关系。 class MyFirstApp public static void Main() Consol

4、e.WriteLine(“您的用户名是什么?“); string user=Console.ReadLine(); Console.WriteLine(“hello,0,欢迎您学会使用!“,user); /* WriteLine()方法的参数表中紧随串后的第一个参数将替换0,依次类推,还可使用1,2等参数替换串后的第二、三个参数等。 */ ,小提示:语法注意点: Main()是程序的入口点,每个程序都必须包含一个Main()方法。 C#用“;”作为语句的分隔符。 C#程序可以采用单行注释符“/”标注,或多行注释符“/*”和“*/”标注。 C#程序的输入输出通过Console来实现。Consol

5、e是System名字空间下的一个类。在屏幕上输出一个字符串用Console.WriteLine(),接受输入设备的输入用Console.ReadLine()方法。,执行步骤如下: (1)在记事本中编写如下所示的两个C#程序之一,保存名为LT4-1.CS,并将该文件存放在C:Inetpubwwwroot(即IIS默认的Web站点目录)中。 (2)用编译器CSC编译程序。 .NET框架内置了C#编辑器,可以在命令窗口编译C#文件(单击“开始”/“所有程序”/“Microsoft Visual Studio.NET 2003”/“Visual Studio.NET工具”/ “Visual Studi

6、o.NET 2003命令提示”,打开命令窗口)。 进入LT4-1.CS文件的保存目录(CDInetpubwwwrootasp_netch4,本章例子都在此存放),在命令行中输入:CSC LT4-1.CS 显示如图4.1所示。编译成功后,则在LT4-1.CS文件所在目录下产生可执行文件LT4-1.exe。 在当前命令窗口中输入LT4-1后运行程序,人机对话输入名字,回车后的运行结果如图4.2所示。,图4.2 LT4-1.exe的运行结果,图4.1 用CSC编译LT4-1.CS文件,4.1.2 类、对象和实例 对象:是一个自包含的实体,用一组可识别的特性和行为来标识,通俗地说对象是一个可以区别的存

7、在. 类:是对象的模板,定义了对象的特性。 类的定义格式为: 属性 类修饰符 class 类名 类体 类实例:是一个真实的对象 .,在OOP中,下面的术语用于描述对象的特性: 属性:是一个名词,描述对象的某种特性。 方法:是一个动词,描述了对象可以完成的工作,或希望它完成的工作。 事件:也是一个动词,描述了对象为响应某个动作而执行的操作。 在前面类定义的基础上,就可以通过new运算符来创建类的实例(即对象),类实例就是类类型变量,其创建格式为:类名 变量名=new 类名(参数);,例如:Student p=new Student(“王兰”,20,200501); 或:Student p;p=n

8、ew Student(“王兰”,20,200501); /*表明定义了类Student的实例p,该实例的三个数据成员name、age和ID值分别为:“王兰”,20,200501 */ 例4.2 定义一个名称为Student的类,其中含有三个私有(private)数据成员:name,age,ID;两个公有(public)函数成员display和Student。,类成员包括函数成员和数据成员。 数据成员:包含类要处理的数据,它包括常数和字段。 函数成员:可以包含可执行代码的成员统称为该类的函数成员,一个类的函数成员包括:方法、属性、事件、运算符、实例构造函数、析构函数和静态构造函数等。在程序中,对

9、类的成员的访问要使用点“.”运算符完成。,4.2 类的数据成员,1类成员访问修饰符 类成员访问修饰符用于指定类成员的可访问性。C#共有public、private、protected和internal四个类成员访问修饰符。其功能比较如下表4-1。 表4-1类成员访问修饰符功能比较表,2静态成员和实例成员类的成员要么是静态成员,要么是实例成员。当用static修饰符定义成员时,得到静态成员,静态成员属于类,为这个类的所有实例所共享;而不用static修饰符定义的成员,称为实例成员,实例成员属于类的实例。例4.3 定义一个Person类,其中含有一个静态成员count表示班级中学生人数,一个实例成

10、员number表示学生学号。,3字段与属性 (1)字段是类中声明的一种数据成员,即与对象或类相关联的变量。根据在类中定义字段时所用到的修饰符的不同,可将字段分为:静态字段、实例字段和只读字段。其中静态字段与实例字段的含义与前面介绍的静态成员与实例成员的含义一致。 表4-2 三类字段功能比较表,小提示:构造函数是类的特殊函数成员,它主要用于为对象分配空间, 完成对象的初始化工作。其详细情况在4.3节介绍。,例4.4 字段的声明与使用 (2)属性用于刻画对象的特征或表示对象的状态。属性与字段不同,它不表示存储位置。相反,属性有访问器,访问器用来指定在它们的值被读取或写入时需要执行的语句。所以,属性

11、提供了一种机制,它把读取和写入对象的某些特性与一些操作关联起来。给属性赋值时使用set访问器, set访问器始终使用value关键字设置属性值。而获取属性值时使用get访问器,get访问器通过return返回属性的值。在访问声明中,如果只有get访问器,表示是只读属性;如果只有set访问器,表示是只写属性;如果get访问器和set访问器都有,表示读写属性。,小技巧:C#中利用命令行编辑器程序csc.exe调试程序的方法和C/C+语言中利用Turbo C/C+调试程序的方法相似,即排除一个个小错误后,直到程序运行全通过为止。,例4.5 属性的声明与使用,小提示:get和set访问器的首字母 不能

12、大写,否则上机显示出错信息。,4.3 类的函数成员,1、构造函数和析构函数 构造函数是类的特殊函数成员,它主要用于为对象分配空间,完成对象的初始化工作。它具有以下特点: 构造函数的名称与类的名称相同。 构造函数可以具有参数,但没有返回值。 构造函数在对象定义(即创建对象)时自动被调用。 在类中没有定义该类的构造函数时,则编译系统会自动生成一个默认的构造函数。该函数是一个不带参数、函数体为空的函数。 构造函数可以重载,但不能继承。,构造函数可分为两类:实例构造函数和静态构造函数。 析构函数是也是类的特殊函数成员,它的主要作用是释放类的实例(即对象)分配空间。它具有以下特点: 析构函数的名称与类名

13、相同,但其名称前加一“”符号。 析构函数不能带有参数,也没有返回值。 当撤消对象时,系统自动调用析构函数。 析构函数不能被重载,也不能被继承。,2类的方法方法是表现类或对象行为的函数成员.类中方法的声明格式如下:属性集 方法修饰符 返回值类型 方法名(形参列表) 方法体其中,方法修饰符包括:new、public、protected、private、internal、static virtual、abstract、sealed、override和extern。 用修饰符static定义方法时,表示该方法为静态方法;而未用修饰符static定义的方法为实例方法。,静态方法不对特定实例进行操作,不与

14、实例相关联,它属于类,并仅与类相关联,所以调用静态方法不需要创建类实例。要调用类的静态方法,只需要类名和方法名,中间加上“.”运算符即可。静态方法只能访问类的静态成员(访问非静态成员是错误的)。 实例方法属于类的实例,可对类的某个特定实例进行操作,调用实例方法需要通过类的实例,其使用格式为“实例名.方法名”,实例方法可以访问类中的任何成员。 例4.6 使用静态方法和实例方法,4.4.1 类的继承、派生、多态性只所以要使用面向对象的编程思想实现ASP.NET程序设计,可以用四个简单的术语来解释:抽象、封装、多态性、继承。,抽象:是隐藏复杂性、类的内部工作细节的过程,以使用户不必知道它的运作方式。

15、 封装:每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装。因此对象不必依赖其它对象来完成自己的操作,然而封装并不表示在类中包含了所需要的所有内容。 多态性:用于表示不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。所以多态性可实现“一个接口,多种方法”。 继承:它定义了类如何相互关联,共享特性。继承的工作方式是,定义类和子类,其中子类不仅继承了父类的所有特性,还可以定义新的特性。一般称被继承的类为基类或父类,而称继承后产生的类为派生类或子类。,4.4 继承和接口,C#中继承有如下重要特性: 只允许单继承,即派生类只能有一个基类。 继承是可以传递的,如果类C从类B派生,

16、而类B从类A派生,那么类C既继承在类B中声明的成员,又继承在类A中声明的成员。 派生类能扩展它的直接基类,即派生类可以添加新的成员,但不能删除从基类继承的成员。 基类的构造函数和析构函数不能被派生类继承。 派生类可以隐藏基类的成员,如果在派生类中声明了与基类同名的新成员时,基类中的该成员在派生类中就不能访问到。 1.派生类的声明: 派生类的声明格式为:属性 类修饰符 class 类名:基类 类体,小提示:在派生类的声明中,通过在类名的后面加上“: ”和基类的名称一起表示继承。派生类的声明中的规定同一般类的声明规定相同。,2.base关键字 用于从派生类中访问基类的成员,其用法如下: 指定创建派生类实例时应调用的基类构造函数,以完成对基类成员的初始化工作。 在派生类中访问基类的成员。 3.多态性 C#中支持两种类型的多态性: 编译时的多态性:是在程序编译时就决定如何实现某一动作,它通过方法重载和运算符重载实现。编译时的多态性在编译时就知道调用方法的全部信息。 运行时多态性:是在运行时动态实现某一动作,它通过继承和虚成员实现。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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