部分揭开面向对象的神秘面纱.ppt

上传人:rrsccc 文档编号:8925571 上传时间:2021-01-25 格式:PPT 页数:25 大小:218.83KB
返回 下载 相关 举报
部分揭开面向对象的神秘面纱.ppt_第1页
第1页 / 共25页
部分揭开面向对象的神秘面纱.ppt_第2页
第2页 / 共25页
部分揭开面向对象的神秘面纱.ppt_第3页
第3页 / 共25页
部分揭开面向对象的神秘面纱.ppt_第4页
第4页 / 共25页
部分揭开面向对象的神秘面纱.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《部分揭开面向对象的神秘面纱.ppt》由会员分享,可在线阅读,更多相关《部分揭开面向对象的神秘面纱.ppt(25页珍藏版)》请在三一文库上搜索。

1、第2部分 揭开面向对象的神秘面纱,第2部分目录,2.1 千呼万唤始出来,2.1 千呼万唤始出来,大家知道,在程序设计发展史中的最重要的革新莫过于由面向过程走向面向对象,如果将其誉为程序设计发展史上一座最为重要的里程碑,是毫不为过的。 “千呼万唤始出来、犹抱琵琶半遮面。”这是我国唐代的著名诗人白居易所作诗歌琵琶行中的名句。在这里我将它用在计算机程序设计的面向对象方法上。由面向过程走向面向对象,我们且不追究其是否“千呼万唤始出来”,因为在面向对象满天飞的今天,没有人再在乎它是否是“千呼万唤”的结果。,2.1 千呼万唤始出来,然而,对于那些已习惯于面向过程程序设计的开发人员或者编程的初学者来说,“犹

2、抱琵琶半遮面”则显得尤为重要。因为他们在面向对象的神秘面纱下,总是认为这是一门极其高深的、难于掌握的学问,从而对其敬而远之,或者是在学习中迟迟不得其精要。 本章将站在面向对象程序设计初学者的角度,结合C#语言,以一种最为通俗易懂的方式来揭开面向对象的这块神秘面纱,移开那把“遮住了半边脸的琵琶”,让它彻底地展现在我们的视野之中。,2.2 一切都是对象,2.2 一切都是对象,程序是什么?首先,请不要把它看得太深奥,它实际上是非常简单的。 为什么要编写计算机程序呢?答案很简单,就是希望使用计算机来完成一些原来需要手工完成的任务,以提高效率。那么程序本质上就是用来解决一些现实问题的,只是需要使用计算机

3、来辅助实现而已! 我们打个比方,已知一个圆的半径需要求其面积,我们可以使用纸和笔、根据圆的面积公式求解,的这一过程就是在解决一个现实问题;再如现在我们在学习C#程序设计这门课程也是处理一个现实中的问题。 如果我们希望使用计算机来完成这些工作,就需要编写两个计算机程序,第一个程序是非常简单的,在学习本课程的过程中,我们很快就能编写出这个程序;第二种情况是比较复杂的,我们暂时还不好全部使用计算机来实现这个目标。,2.2 一切都是对象,对象是什么呢?在现实生活中,我们的理解就是那些可以看得见摸得着的物体。例如一个人、一张桌子、一台电脑都是一个对象。我们先看看上面的两个问题,第一个问题求圆的面积,从整

4、体的角度来看,这个圆就是一个对象,从部分的角度看,圆的半径、圆周率、圆的面积也是对象。第二个问题就更大了,在学习这门课程的过程中,也有很多的对象,老师是一个对象,每一位同学是一个对象,用于学习的课本、教室、桌子、电脑等都是这个过程中涉及到的对象。 “一切都是对象”,这是对微软最新的面向对象语言C#的精辟阐释。也就是说,C#程序中的最小元素就是对象。,2.3 分类、类与对象,2.3 分类、类与对象,好了,现在我们已经知道了在C#程序中,一切都是对象。那么也就是说要编写一个C#程序,就需要构造这个程序需要的对象。 我们首先来看求圆的面积这个例子,刚刚我们谈到了,在这个程序中需要圆的半径、圆周率、圆

5、的面积这三个对象。这仅仅是几个数值而已,在C#中实现也是很简单的,使用本书后面介绍的常量和变量定义这些对象、再使用数学运算符按照圆的面积计算公式进行计算,就能得到圆的面积。,2.3 分类、类与对象,我们再来看第二个例子,我们先对学习C#程序设计这个任务做一个假设:有一位老师,还有50位学生,以及一台教师电脑、50台学生用电脑、一台投影仪、一张投影布、50本教材、一个教室、50张课桌、50张椅子。其中老师有姓名、年龄、性别等属性;电脑则有品牌、颜色、中央处理器 CPU类型等属性。 不用再列举了,我们已经知道如果需要在程序中一个一个的构造这么多对象,那将是一件非常复杂或者根本不可能完成的任务!,2

6、.3 分类、类与对象,我们现在的做法是根据程序的需要,一个一个的构造对象,显然我们不应该这样做!如果我们转换一下思维,不难发现这些对象中有很多是相似的,例如老师和学生都有姓名、年龄、性别等属性,电脑都有品牌、颜色、CPU 类型等属性,桌子椅子都有尺寸、颜色等属性等等。如果我们把这些具有相同属性的对象抽象出来,也就是说对其分类,再在类的基础上来构造对象,这样就简单多了! 那么,在C#中是不是这样做的呢?答案当然是肯定的,事实上,虽然“一切都是对象”是C#语言的精髓,然而我们在编写C#程序时,您会发现一切都是类!这些您都将在后面的章节中慢慢的认识到。,2.3 分类、类与对象,本节的节标题是“分类”

7、,我们不妨再来讨论一下“分类”的相关知识。类的英文名( class)是分类的英文名(classification)的词根,从中可以推测出,类是分类的结果,事实正是如此,设计一个类的过程就是对信息进行分类,并将相关信息放置到一个有意义的实体中的过程。 分类是一个分别按照种类、等级或性质等进行归类的过程,分类可以把无规律的事物分为有规律的,按照不同的特点分类事物,使事物更有规律。,2.3 分类、类与对象,分类是我们具有的一种基本的思维能力,例如,所有的人都具有通用的行为(例如说话、行走等)和通用的属性(如都有两只手、两只眼睛等),此时就用“人类”一词来泛指具有这些行为和属性的对象。当然“人类”还可

8、以分,例如根据肤色可以将“人类”分成“黑种人”、“白种人”和“黄种人”。这里的“人类”相当于面向对象思想中的基类,而“黑种人”、“白种人”和“黄种人”则是基类“人类”的继承类(派生类、子类),它们都具有基类“人类”的所有特征。 如人们对事物的分类一样,在编写程序时,很有必要对一个问题即解决方案进行分类,然后用一种编程语言来对这些类进行建模,这正是现代面向对象语言的宗旨,C#就是其中之一。,2.3 分类、类与对象,类是分类的结果,是一个抽象的概念,从概念的角度来看,它本身不具有任何的属性和行为等,只有对象才具有这些属性和行为。例如,人类只是一个类,是一个抽象的概念,它本身是不具有两只手和两只眼睛

9、这些属性的,也不具有说话和行走这些行为,只有符合人类定义的个体(即人类的一个实例、通俗的讲就是一个人),才具有这些属性和行为。 在人们周围存在着很多对象的例子,除了前面例子中提到过的,还有如一台电视机、一辆小汽车、一条小狗等,都是对象。通常称电视机是电器类的一个实例,小汽车是汽车类的一个实例,而小狗则是动物类的一个实例。因此,对象是类的实例。,2.3 分类、类与对象,对象是面向对象编程的最小单位,可以视为一个单元的代码和数据的组合。它可以是应用程序的一部分,如圆的半径、圆周率、圆的面积,或者把整个圆看做一个对象,甚至还可以认为整个程序是一个对象。 对象是理解面向对象技术的关键,通俗地讲,对象就

10、是类变量。对类进行实例化的过程就是创建对象的过程。,2.4 类的成员,2.4 类的成员,类(class)是 C#类型中最基础的一种,它将这个类具有的特征(以后我们称这些特征为类的成员)组合在一个单元中。 那么类的成员可以有哪些呢,或者说这个组合单元可以包含哪些成员?我们还以人类或者相关的类为例来说明。,2.4 类的成员,第一、每个人都有姓名,通常情况下,每个人的姓名是不同的(这里仅为了说明类的成员、不考虑同名的问题),那么类中应该包含一个用于表示人的姓名成员。当我们或得了类的实例(对象)时,应该给对象的这个成员一个特定的值,以表示这个人的姓名。在C#中,把这种成员称为字段成员,它其实就是雷中直

11、接定义的变量。大家又会问了,什么是变量呢?这在本书后面的章节中将介绍,它其实很简单,变量就是一个可变的量,如姓名,每个人的姓名不一样,这就要求它必须可变,在需要的时候,给他分配一些值,如“张三”、“李四”等。这就是变量,就这么简单!,2.4 类的成员,第二、上面提到了变量是类中一个可以改变其值的成员,勤于思考的你很快就会想到,如果是一个不可以改变其值的成员呢,那又如何?要说明这个问题,我们首先必须考虑这样的成员是否有其存在的必要性。人类都有性别这一属性,他可以是“男”和“女”,但如果现在我们讨论的不是人类,而是人类的子类(子类这个概念与继承有关,在本书后面的章节中介绍,这里我们只要理解这些子类

12、是人类的一部分就可以了):男人类或女人类。这时我们再来看性别这个成员,男人类当然也具有性别,只是这个成员的值永远都不会改变而已。在C#中,把这样的成员称为常量成员,表示类中不可改变其值的一种成员。,2.4 类的成员,第三、人具有很多的属性,如姓名、性别等,但是如果这是类是人类的一个子类(如教师类),那么它就还有一个工资属性,用于表示教师的月薪。大多数人都不想公开自己的工资,那么怎么办呢?我们可以限定它的可访问性,并将它封装起来,然后还可以限制它是只读、只写或者是可读写等特征。在C#中,把这种成员称为属性成员,其本质就是一个字段成员,只是用一个不同的名称给了这个字段一个包装,并可以限定它的可读写

13、性质。具体的实现将在后面的章节中介绍。,2.4 类的成员,第四、同样的,人也具有很多的行为,如说话、走路、吃饭等。这些行为在C#中称为方法,通常用于执行类的一些操作和计算,方法是执行。 第五、人在什么在情况下才会进行说话、走路和吃饭这些行为呢?通常情况下,要进行这些动作,会有一些前提条件:如回答问题时会说话、起床时会走路、肚子饿了会吃饭等,回答、起床和肚子饿了就是触发说话、走路和吃饭这些行为的元素。在C#中,把这样的元素称为事件。这与C#中的一种叫做事件驱动的机制有关,即在C#中,要执行一个方法,需要有一个事件来驱动,例如单击了一个按钮,就会产生按钮的单击事件,我们可以对编写一个方法,让程序在

14、发生按钮的单击事件是执行这个方法。,2.4 类的成员,第六、在类中,有一种特殊的成员,称为索引器,它允许我们以一种特殊的方式检索和存取对象。索引器超出了本书介绍的范畴,故在此不作详细的解释。 第七、我们可以对两个整数进行加减乘除等运算、也能对两个小数进行同样的运算,这些都是由我们所熟悉的算术运算符来实现的。但如果我们需要对两个人进行加法运算呢?有读者认为,两个人不能相加,其实不然,只要我们需要,就可以对两个人进行这些运算。但是我们必须定义好运算的规则。例如相加,加的是什么,是身高?是年龄?还是其它?也就是说,只要定义好了这些规则,两个对象是可以执行这些运算的。在C#中,把这种成员称为运算符,且

15、通常以重载的形式出现。关于重载,同样超出了本书的范畴,请读者参考其他资料和书籍。,2.4 类的成员,第八、在C#中,还有一种特殊的成员:构造函数,它用于构造类的实例,即对象。构造函数本质上是方法,只是其调用的方式有点特殊而已。C#中规定了调用构造函数的语法,具体将在后面的章节中介绍。 第九、与构造函数相对应,C#中还有一种成员:析构函数,它也是一种特殊的方法,用于释放对象占用的资源。实际上,由于.NET平台的资源回收方式的特殊性,析构函数很少在C#中使用。,2.4 类的成员,根据上面的分析,可以得到以下的结果:在C#中,类可以具有以下成员:常量、变量(字段)、属性、方法、事件、索引器、运算符、构造函数和析构函数。这些成员是可选的,并不是类必须包含它们或者部分。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1