C#程序设计pp3.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C#程序设计pp3.ppt》由会员分享,可在线阅读,更多相关《C#程序设计pp3.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、nC#程序设计pp3第第3 3章章 C#C#的面向对象设计的面向对象设计面向对象设计是软件设计的一种方法。该方法是根据面向对象设计是软件设计的一种方法。该方法是根据面向对象思想,以对象为基础来进行软件的设计。面向对象思想,以对象为基础来进行软件的设计。面向对象的设计方法主要应用于大型的软件项目中,面向对象的设计方法主要应用于大型的软件项目中,其主要的优点是提高开发效率、节约成本、容易维护。其主要的优点是提高开发效率、节约成本、容易维护。本章将详细讨论如何在本章将详细讨论如何在C#中中声明类、接口声明类、接口以及其以及其属性属性和方法和方法的面向对象技术。的面向对象技术。C#C#的面向对象设计的
2、面向对象设计本章结构本章结构3.4 C#的接口3.6 继承性、多态性和封装性3.3 C#的抽象类3.7 委托与事件3.1 面向对象概述3.2 C#的类3.5 方法3.1 面向对象概述面向对象概述3.1.1对象的概念对象的概念3.1.2面向对象的设计方法面向对象的设计方法3.1 面向对象概述面向对象概述3.1.1对象的概念对象的概念v面向对象是一种模块化的、以对象为基础的设计思想,面向对象是一种模块化的、以对象为基础的设计思想,现在被广泛应用于软件设计领域。本节将讲述面向对象现在被广泛应用于软件设计领域。本节将讲述面向对象的基本概念,以及如何使用面向对象的思想来设计。的基本概念,以及如何使用面向
3、对象的思想来设计。v面向对象的设计方法主要应用于大型的软件项目中,其面向对象的设计方法主要应用于大型的软件项目中,其主要的优点是提高开发效率、节约成本、容易维护。主要的优点是提高开发效率、节约成本、容易维护。3.1 面向对象概述面向对象概述3.1.1对象的概念对象的概念在面向对象思想中,最基本的单元就是对象。在面向对象思想中,最基本的单元就是对象。对象可以代表任何事物,从个人到整个学校,一对象可以代表任何事物,从个人到整个学校,一个整数到一个数据集合,一滴水到一条大河等,个整数到一个数据集合,一滴水到一条大河等,这些都可以看作是一个对象。这些都可以看作是一个对象。对象不仅表示有形的实体,也可以
4、表示无形的、对象不仅表示有形的实体,也可以表示无形的、抽象的事物,如课程、计划等。抽象的事物,如课程、计划等。3.1 面向对象概述面向对象概述3.1.1对象的概念对象的概念对对象象车轮数量档的数量加速换档属性行为刹车型号价格里程起动停车行驶属性行为名称颜色品种摇尾巴吃东西犬吠属性行为3.1.2面向对象的设计方法面向对象的设计方法3.1 面向对象概述面向对象概述v面向对象方法(面向对象方法(Object-Oriented Method)是把面向对)是把面向对象的思想应用于软件的开发中。象的思想应用于软件的开发中。v从程序的角度来看,对象则是被封装起来的代码块,在从程序的角度来看,对象则是被封装起
5、来的代码块,在对象中,包含着若干个属性和方法,如新建了一个对象中,包含着若干个属性和方法,如新建了一个Form,可以定义它的属性,有默认的方法,可以定义它的属性,有默认的方法InitializeComponent()等方法。等方法。3.1.2面向对象的设计方法面向对象的设计方法3.1 面向对象概述面向对象概述Form初始化3.1.2面向对象的设计方法面向对象的设计方法3.1 面向对象概述面向对象概述v在面向对象中,和对象有直接关系的就是类。类在面向对象中,和对象有直接关系的就是类。类是对象的一个抽象的概念,是对象的一个抽象的概念,对象则是类的一个实对象则是类的一个实例化。例化。例如,如果把某个
6、苹果看作是一个对象,例如,如果把某个苹果看作是一个对象,则这个苹果可以抽象为一个水果类,这个苹果也则这个苹果可以抽象为一个水果类,这个苹果也是水果类的实例化。是水果类的实例化。对象创建对象创建vEmployeeemp_tom=newEmployee(Tom);vEmployeeemp_jerry=newEmployee(Jerry,true,false,true);3.1.2面向对象的设计方法面向对象的设计方法3.1 面向对象概述面向对象概述面向对象的面向对象的主要特征主要特征继承性继承性继承性继承性封装性封装性封装性封装性多态性多态性多态性多态性3.2 C#的类的类3.2.1类的概念类的概念
7、3.2.4 类的访问控制类的访问控制 3.2.6 类的属性类的属性3.2.2类的声明类的声明3.2.5构造函数和析构函数构造函数和析构函数3.2.3类的成员变量类的成员变量 3.2 C#的类的类3.2.1类的概念类的概念在现实生活中,可以找出很多在现实生活中,可以找出很多关于类的例子。例如,学生可以看关于类的例子。例如,学生可以看作是一个类,那么某个同学就是这作是一个类,那么某个同学就是这个学生类的一个实例化对象。从软个学生类的一个实例化对象。从软件设计的角度来说,类就是一种数件设计的角度来说,类就是一种数据结构,用于模拟现实中存在的对据结构,用于模拟现实中存在的对象和关系。象和关系。类是面向
8、对象中最为重要的类是面向对象中最为重要的概念之一,是面向对象设计中最概念之一,是面向对象设计中最基本的组成模块。类可以简单地基本的组成模块。类可以简单地看作一种数据结构。本节讲述类看作一种数据结构。本节讲述类的概念、如何声明类、类的成员的概念、如何声明类、类的成员等。等。类类3.2 C#的类的类3.2.2类的声明类的声明C#中类的声明需要使用中类的声明需要使用class关键字,并把类的主体放关键字,并把类的主体放在花括号中,格式如下:在花括号中,格式如下:class-modifiersclassclass-name/属性属性/方法方法3.2 C#的类的类3.2.2类的声明类的声明类类类类的的的
9、的访访访访问问问问修修修修饰饰饰饰符符符符程序集是程序集是.NET在编译后在编译后,文件扩展名往往是文件扩展名往往是“.DLL”或或“.EXE”,如果说命名空间是类库的逻辑组织形式,那么程序集就是类库的物,如果说命名空间是类库的逻辑组织形式,那么程序集就是类库的物理组织形式。默认值为理组织形式。默认值为Internal3.2 C#的类的类3.2.3-4类的成员变量和访问控制类的成员变量和访问控制 v从类的继承关系上讲,类的成员可以分为两大类:从类的继承关系上讲,类的成员可以分为两大类:类本身声明的和从基类继承的。类本身声明的和从基类继承的。v类的成员类的成员类型有以下几种:类型有以下几种:常量
10、、变量、方法、常量、变量、方法、属性属性、事件、索引指示器、操作符以及、事件、索引指示器、操作符以及构造函数构造函数和析构函数和析构函数。v从类的访问角度上来讲,类的成员又可以分为四从类的访问角度上来讲,类的成员又可以分为四类:公有成员、私有成员、保护成员及类:公有成员、私有成员、保护成员及内部成员。内部成员。3.2 C#的类的类3.2.3-4类的成员变量和访问控制类的成员变量和访问控制 访问修饰符访问修饰符数据类型数据类型成员变量成员变量;privateprotectedinternalpublic_namestatus.userNameintchar.boolclassEmployeepu
11、blicstring_name;privatechar_gender;privatestring_qual;privateuint_salary;3.2 C#的类的类3.2.3-4类的成员变量和访问控制类的成员变量和访问控制 Teacher类private成员protected成员public成员internal成员Student类不可访问不可访问可以访问只有Student类在Teacher类都在同一程序集中,才可访问internal成员3.2 C#的类的类3.2.3-4类的成员变量和访问控制类的成员变量和访问控制 第二步第二步第一步第一步创建一个类的对象使用点号访问成员变量objEmploy
12、ee._name=“张三;objEmployee._name=M;访访访访问问问问成成成成员员员员变变变变量量量量EmployeeobjEmployee=newEmployee();3.2 C#的类的类3.2.5构造函数和析构函数构造函数和析构函数构造函数构造函数主要的作用是执行类的主要的作用是执行类的实例的初始化。实例的初始化。在实例化对象的时候,对象的初始化是自动完成的,并且这个对象是空的。有时候,希望每创造一个对象时都为其初始化某些特征,这时就需要用到构造函数。析构函数析构函数主要的作用就是回收系统占用的资源。使用构造函数在实例化对象时自动完成了一些初始化工作。在销毁对象的时候,有时候也
13、希望能自动完成一些“收尾”任务。例如,关闭数据库连接等,C#使用析构函数来完成这个功能。3.2 C#的类的类3.2.6 类的属性类的属性v属性可以看作是实体特征的抽象表现。例如,一属性可以看作是实体特征的抽象表现。例如,一个学生的姓名、一个软件的大小、一个班级的人个学生的姓名、一个软件的大小、一个班级的人数等,这些都可以作为属性来表示。属性的声明数等,这些都可以作为属性来表示。属性的声明涉及两个关键字:涉及两个关键字:get和和set。get:表示对属性的读操作。:表示对属性的读操作。set:表示对属性的写操作。:表示对属性的写操作。3.3 C#的抽象类的抽象类v面向对象编程思想试图模拟现实中
14、的对象和关系。面向对象编程思想试图模拟现实中的对象和关系。但是,有时候,基类并不是与具体的事物相联系但是,有时候,基类并不是与具体的事物相联系的,而是表达一种抽象的概念。的,而是表达一种抽象的概念。v抽象类就可以满足这种关系。本节讲述抽象类的抽象类就可以满足这种关系。本节讲述抽象类的概念和使用。概念和使用。3.3 C#的抽象类的抽象类3.3.1抽象类的概念抽象类的概念3.3.2抽象类和抽象方法的声明抽象类和抽象方法的声明3.3.3结构和类的区别结构和类的区别3.3 C#的抽象类的抽象类3.3.1抽象类的概念抽象类的概念v现实中,存在如图所示的对象及关系,父类现实中,存在如图所示的对象及关系,父
15、类“运运动员动员”有有3个子类,这个子类,这3个子类都可以继承父类个子类都可以继承父类的的“训练训练”这个方法,但是,仔细考虑一下,父这个方法,但是,仔细考虑一下,父类类“运动员运动员”的训练该如何实现呢?的训练该如何实现呢?3.3 C#的抽象类的抽象类3.3.2抽象类和抽象方法的声明抽象类和抽象方法的声明如何在如何在C#中实现抽象类和抽象方法中实现抽象类和抽象方法?1.在在C#中,使用关键字中,使用关键字abstract来定义抽象方法,格来定义抽象方法,格式如下:式如下:publicabstractvoidTrain();2.子类继承抽象父类之后,可以使用子类继承抽象父类之后,可以使用ove
16、rride关键字覆关键字覆盖父类中的抽象方法,并做具体的实现,格式如下:盖父类中的抽象方法,并做具体的实现,格式如下:publicoverridevoidTrain()3.3 C#的抽象类的抽象类3.3.3结构和类的区别结构和类的区别结构属于值类型可以有方法可以拥有构造函数不能实现继承struct structEx public int structDataMember;public void structEx()/构造函数实现 public void structMethod1()/structMethod1 实现 结构和类的比较结构和类的比较结构存放在栈中并以值传递类存放在堆中并以引用传递
17、结构结构3.3 C#的抽象类的抽象类3.3.3结构和类的区别结构和类的区别3.4 C#的接口的接口3.4.1接口的概念接口的概念3.4.2接口的声明接口的声明3.4.3接口和抽象类接口和抽象类3.4 C#的接口的接口3.4.1接口的概念接口的概念v接口和抽象类非常相似,它定义了一些接口和抽象类非常相似,它定义了一些未实现的属性和未实现的属性和方法方法。v所有继承它的类都继承这些成员,在这个角度上,可以所有继承它的类都继承这些成员,在这个角度上,可以把接口理解为一个把接口理解为一个类的模板类的模板。这种模版定义了实现接口的对象必须实现的方法,其目的就是让这些方法可以作为接口实例被引用。接口的定义
18、如:publicinterfaceIPartAvoidSetDataA(stringdataA);3.4 C#的接口的接口3.4.2接口的声明接口的声明v下面通过一个具体的例子,说明在下面通过一个具体的例子,说明在C#中声明和使用接口。中声明和使用接口。v示例中有一个示例中有一个“形状形状”的概念,它有的概念,它有3个具体的形状类:个具体的形状类:矩形、圆形、三角形。可以看出,在某种意义上,接口矩形、圆形、三角形。可以看出,在某种意义上,接口与抽象类非常相似。与抽象类非常相似。3.4 C#的接口的接口3.4.2接口的声明接口的声明使用关键字使用关键字interface定定义,接口可使用的修饰符
19、义,接口可使用的修饰符包括包括new,public,protected,internal,private等。接口等。接口的命名通常是以的命名通常是以I开头,如开头,如IPartA,IPartB。接口的成员可以是接口的成员可以是方法方法,属性和事件属性和事件,但不可以有任,但不可以有任何的成员变量,也不能在接何的成员变量,也不能在接口中实现接口成员。口中实现接口成员。接口不接口不能被实例化。能被实例化。接口的成员默接口的成员默认是公共的,因此不允许成认是公共的,因此不允许成员加上修饰符。员加上修饰符。3.4 C#的接口的接口3.4.3接口和抽象类接口和抽象类v接口和抽象类非常相似,它定义了一些未
20、实现的属性和方法。接口和抽象类非常相似,它定义了一些未实现的属性和方法。所有继承它的类都继承这些成员。接口和抽象类的相似之处所有继承它的类都继承这些成员。接口和抽象类的相似之处表现在以下两方面:表现在以下两方面:(1)两者都包含可以由子类继承的抽象成员;)两者都包含可以由子类继承的抽象成员;(2)两者都不能直接实例化。)两者都不能直接实例化。主要区别:主要区别:1.类是对类是对对象对象的抽象,可以把抽象类理解为把类当作对象,抽的抽象,可以把抽象类理解为把类当作对象,抽象成的类叫做抽象类。而接口是一个行为的规范或规定。象成的类叫做抽象类。而接口是一个行为的规范或规定。2.一个类一次可以实现若干个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 程序设计 pp3
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内