首页 面向对象技术概述

面向对象技术概述

举报
开通vip

面向对象技术概述面向对象技术概述 第1章 面向对象技术概述 面向对象技术是一种全新设计和构造软件的技术,它使计算机解决问题的方式更符合人类的思维方式,更能直接地描述客观世界,通过增加代码的可重用性、可扩充性和程序自动生成功能来提高编程效率,并且大大减少软件维护的开销,已经被越来越多的软件设计人员所接受。希望通过本章的介绍,能从宏观上了解面向对象技术,有助于对具体实现的掌握。本章首先介绍面向对象技术的基本概念、基本特征,介绍了面向对象与面向过程程序设计的区别,然后介绍目前流行的几种面向对象程序设计语言,特别强调C++对面向对象技...

面向对象技术概述
面向对象技术概述 第1章 面向对象技术概述 面向对象技术是一种全新MATCH_ word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 _1711678326454_3和构造软件的技术,它使计算机解决问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 的方式更符合人类的思维方式,更能直接地描述客观世界,通过增加代码的可重用性、可扩充性和程序自动生成功能来提高编程效率,并且大大减少软件维护的开销,已经被越来越多的软件设计人员所接受。希望通过本章的介绍,能从宏观上了解面向对象技术,有助于对具体实现的掌握。本章首先介绍面向对象技术的基本概念、基本特征,介绍了面向对象与面向过程程序设计的区别,然后介绍目前流行的几种面向对象程序设计语言,特别强调C++对面向对象技术的支持及其发展现状,其中还涉及到.NET技术。 1.1 面向对象技术的基本概念 面向对象技术是一种新的软件技术,其概念来源于程序设计,从20世纪60年代提出面向对象的概念,到现在已发展成为一种比较成熟的编程思想,并且逐步成为目前软件开发领域的主流技术。同时,它不仅局限于程序设计方面,已经成为软件开发领域的一种方法论。它对信息科学、软件工程、人工智能和认知科学等都产生了重大影响,尤其在计算机科学与技术的各个方面影响深远。通过面向对象技术,可以将客观世界直接映射到面向对象解空间,从而为软件设计和系统开发带来革命性影响。 1.1.1 面向对象与面向过程的区别 在面向对象程序设计(Object Oriented Programming,OOP)方法出现之前,程序员用面向过程的方法开发程序。面向过程的方法把密切相关、相互依赖的数据和对数据的操作相互分离,这种实质上的依赖与形式上的分离使得大型程序不但难于编写,而且难于调试和修改。在多人合作中,程序员之间很难读懂对方的代码,更谈不上代码的重用。由于现代应用程序规模越来越大,对代码的可重用性与易维护性的要求也相应提高。面向对象技术便应运而生了。 面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。它以数据为中心而不是以功能为中心来描述系统,数据相对于功能而言具有更强的稳定性。它将数据和对数据的操作封装在一起,作为一个整体来处理,采用数据抽象和信息隐蔽技术,将这个整体抽象成一种新的数据类型??类,并且考虑不同类之间的联系和类的重用性。类的集成度越高,就越适合大型应用程序的开发。另一方面,面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际。事件驱动程序执行围绕消息的产生与处理,靠消息循环机制来实现。更重要的是,可以利用不断扩充的框架产品MFC(Microsoft Foundation Classes),在实际编程时可以采用搭积木的方式来组织程序,站在“巨人”肩上实现自己的愿望。面向对象的程序设计方法使得程序结构清晰、简单,提高了代码的重用性,有效地减少了程序的维护量,提高了软件的开发效率。 例如,用面向对象技术来解决学生管理方面的问题。重点应该放在学生上,要了解在管理工作中,学生的主要属性,要对学生做些什么操作等等,并且把它们作为一个整体来对待,形成一个类,称为学生类。作为其实例,可以建立许多具体的学生,而每一个具体的学生就是学生类的一个对象。学生类中的数据和操作可以提供给相应的应用程序共享,还可以在学生类的基础上派生出大学生类、中学生类或小学生类等,实现代码的高度重用。 在结构上,面向对象程序与面向过程程序有很大不同,面向对象程序由类的定义和类的 1 使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律,程序中的一切操作都是通过向对象发送消息来实现的,对象接到消息后,启动消息处理函数完成相应的操作。 类与对象是面向对象程序设计中最基本且最重要的两个概念,有必要仔细理解和彻底掌握。它们将贯穿全书并且逐步深化。 1.1.2 对象的概念与类的确定 与人们认识客观世界的规律一样,面向对象技术认为客观世界是由各种各样的对象组成,每种对象都有各自的内部状态和运动规律,不同对象间的相互作用和联系就构成了各种不同的系统,构成了客观世界。在面向对象程序中,客观世界被描绘成一系列完全自治、封装的对象,这些对象通过外部接口访问其他对象。可见,对象是组成一个系统的基本逻辑单元,是一个有组织形式的含有信息的实体。而类是创建对象的样板,在整体上代表一组对象,设计类而不是设计对象可以避免重复编码,类只需要编码一次,就可以创建本类的所有对象。 对象(Object)由属性(Attribute)和行为(Action)两部分组成。对象只有在具有属性和行为的情况下才有意义,属性是用来描述对象静态特征的一个数据项,行为是用来描述对象动态特征的一个操作。对象是包含客观事物特征的抽象实体,是属性和行为的封装体,在程序设计领域,可以用“对象,数据十作用于这些数据上的操作”这一公式来表达。 类(Class)是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分,类是对象集合的再抽象。 类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。所以,一个对象又称作类的一个实例(Instance)。 在面向对象程序设计中,类的确定与划分非常重要,是软件开发中关键的一步,划分的结果直接影响到软件系统的质量。如果划分得当,既有利于程序进行扩充,又可以提高代码的可重用性。因此,在解决实际问题时,需要正确地进行分“类”。理解一个类究竟表示哪一组对象,如何把实际问题中的事物汇聚成一个个的“类”,而不是一组数据。这是面向对象程序设计中的一个难点。 类的确定和划分并没有统一的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 和固定的方法,基本上依赖设计人员的经验、技巧以及对实际问题的把握。但有一个基本原则:寻求一个大系统中事物的共性,将具有共性的系统成分确定为一个类。确定某事物是一个类的步骤包括:第一步,要判断该事物是否有一个以上的实例,如果有,则它是一个类;第二步,要判断类的实例中有没有绝对的不同点,如果没有,则它是一个类。另外,还要知道什么事物不能被划分为类。不能把一组函数组合在一起构成类,也就是说,不能把一个面向过程的模块直接变成类。类不是函数的集合~ 1.1.3 消息与事件的概念 消息(Message)是描述事件发生的信息,事件(Event)由多个消息组成。消息是对象之间发出的行为请求。封装使对象成为一个相对独立的实体,而消息机制为它们提供了一个相互间动态联系的途径,使它们的行为能互相配合,构成一个有机的运行系统。 对象通过对外提供的行为在系统中发挥自己的作用,当系统中的其他对象请求这个对 象执行某个行为时,就向这个对象发送一个消息,这个对象就响应这个请求,完成指定的 行为。 程序的执行取决于事件发生的顺序,由顺序产生的消息驱动,不必预先确定消息产生的顺序,更符合客观世界的实际。 2 1.2 面向对象技术的基本特征 面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性。 1.2.1 抽象性 把众多的事物进行归纳、分类是人们在认识客观世界时经常采用的思维方法,“物以类聚,人以群分”就是分类的意思,分类所依据的原则是抽象。抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征。从而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。例如,在设计一个学生成绩管理系统的过程中,考察学生张华这个对象时,就只关心他的班级、学号、成绩等,而忽略他的身高、体重等信息。因此,抽象性是对事物的抽象概括描述,实现了客观世界向计算机世界的转化。将客观事物抽象成对象及类是比较难的过程,也是面向对象方法的第一步。例如,将学生抽象成对象及类的过程如图1-1所示。 学生类 属性: 服务: 学生1 学生对象1 班级 查询各属性 学生2 学生对象2 抽象 创建 学号 修改各属性 学生3 学生对象3 姓名 打印各属性 学生4 学生对象4 专业 ? 学生5 学生对象5 成绩 ? ? ? 图1-1 抽象过程示意图 1.2.2 封装性 封装(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。图1-1中的学生类也反映了封装性。封装有两个含义:一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。对象的属性值(除了公有的属性值)只能由这个对象的行为来读取和修改;二是尽可能隐蔽对象的内部细节,对外形成一道屏障,与外部的联系只能通过外部接口实现。 封装的信息隐蔽作用反映了事物的相对独立性,可以只关心它对外所提供的接口,即能做什么,而不注意其内部细节,即怎么提供这些服务。例如,用陶瓷封装起来的一块集成电路芯片,其内部电路是不可见的,而且使用者也不关心它的内部结构,只关心芯片引脚的个数、引脚的电气参数及引脚提供的功能,利用这些引脚,使用者将各种不同的芯片连接起来,就能组装成具有一定功能的模块。 封装的结果使对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错 3 误对它的影响,大大减小了查错和排错的难度。另一方面,当对象内部进行修改时,由于它只通过少量的外部接口对外提供服务,因此同样减小了内部的修改对外部的影响。同时,如果一味地强调封装,则对象的任何属性都不允许外部直接存取,要增加许多没有其他意义,只负责读或写的行为。这为编程工作增加了负担,增加了运行开销,并且使得程序显得臃肿。为了避免这一点,在语言的具体实现过程中应使对象有不同程度的可见性,进而与客观世界的具体情况相符合。 封装机制将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需要用设计者提供的外部接口让对象去做。封装的结果实际上隐蔽了复杂性,并提供了代码重用性,从而降低了软件开发的难度。 1.2.3 继承性 客观事物既有共性,也有特性。如果只考虑事物的共性,而不考虑事物的特性,就不能反映出客观世界中事物之间的层次关系,不能完整地、正确地对客观世界进行抽象描述。运用抽象的原则就是舍弃对象的特性,提取其共性,从而得到适合一个对象集的类。如果在这个类的基础上,再考虑抽象过程中被舍弃的一部分对象的特性,则可形成一个新的类,这个类具有前一个类的全部特征,是前一个类的子集,形成一种层次结构,即继承结构,如图1-2所示。 人 工 人 农 民 教 师 学 生 小学生 中学生 大学生 助 教 讲 师 研究生 教 授 图1-2 类的继承结构 继承(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而它却自动地、隐含地拥有其一般类的属性与行为。继承允许和鼓励类的重用,提供了一种明确表述共性的方法。一个特殊类既有自己新定义的属性和行为,又有继承下来的属性和行为。尽管继承下来的属性和行为是隐式的,但无论在概念上还是在实际效果上,都是这个类的属性和行为。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的属性和行为又被下一层的特殊类继承下去。因此,继承是传递的,体现了大自然中特殊与一般的关系。 在软件开发过程中,继承性实现了软件模块的可重用性、独立性,缩短了开发周期,提高了软件开发的效率,同时使软件易于维护和修改。这是因为要修改或增加某一属性或行为,只需在相应的类中进行改动,而它派生的所有类都自动地、隐含地作了相应的改动。 由此可见,继承是对客观世界的直接反映,通过类的继承,能够实现对问题的深入抽象描述,反映出人类认识问题的发展过程。 4 1.2.4 多态性 面向对象设计借鉴了客观世界的多态性,体现在不同的对象收到相同的消息时产生多种不同的行为方式。例如,在一般类“几何图形”中定义了一个行为“绘图”,但并不确定执行时到底画一个什么图形。特殊类“椭圆”和“多边形”都继承了几何图形类的绘图行为,但其功能却不同,一个是要画出一个椭圆,另一个是要画出一个多边形。这样一个绘图的消息发出后,椭圆、多边形等类的对象接收到这个消息后各自执行不同的绘图函数。如图1-3所示,这就是多态性的表现。 类:Shape 行为:Draw 类:Ellipse 类:Rectangle 行为:Draw 行为:Draw 图1-3 多态性示意图 具体来说,多态性(Polymorphism)是指类中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。 继承性和多态性的结合,可以生成一系列虽类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征;由于多态性,针对相同的消息,不同对象可以有独特的表现方式,实现特性化的设计。 上述面向对象技术四大特征的充分运用,为提高软件开发效率起着重要的作用,通过编写可重用代码、编写可维护代码、改代码模块、共享代码等方法充分发挥其优势。面向对象技术可使程序员不必反复地编写类似的程序,通过继承机制进行特殊类化的过程使得程序设计变成仅对特殊类与一般类的差异进行编程的过程。当高质量的代码可重复使用时,复杂性就得以降低,效率则得到提高。不断扩充的MFC类库和继承机制能很大程度地提高开发人员建立、扩充和维护系统的能力。面向对象技术将数据与操作封装在一起,简化了调用过程,方便了维护,并减少了程序设计过程中出错的可能性。继承性和封装性使得应用程序的修改带来的影响更加局部化,而且类中的操作是易于修改的,因为它们被放在惟一的地方。 因此,采用面向对象技术进行程序设计具有开发时间短、效率高、可靠性好、所开发的程序更强壮等优点。 1.3 面向对象程序设计语言 20世纪60年代,出现了最早的面向对象程序设计语言Simula67语言,具有了类和对象的概念,被公认为是面向对象语言的鼻祖。随后又推出了纯面向对象程序设计语言,如美国Xerox Palo Alto研究中心推出的Smalltalk,它完整地体现并进一步丰富了面向对象的概念。进而出现了混合型面向对象程序设计语言,如 C++,这类语言一般是在其他语言的基 5 础上开发出来的。还有与人工智能语言结合形成的面向对象程序设计语言,如LOOPS、Flavors和CLOS。以及适合网络应用的面向对象程序设计语言,如 Java语言等。下面简要介绍几种目前常用的面向对象程序设计语言。 1.3.1 混合型面向对象程序设计语言C++ C++是AT,T Bell实验室的Bjarne Stroustrup博士于20世纪80年代早期提出的,是迄今为止商业上最受欢迎的混合型面向对象程序设计语言。C++兼容了C语言并弥补了其缺陷,支持面向过程程序设计方法;增加了面向对象的能力,支持面向对象程序设计方法。许多软件公司都为C++设计编译系统。如AT&T、Apple、Sun、Borland和Microsoft等,国内最为流行的是Borland C++和 Visual C++。同时,许多大学和公司也在为C++编写各种不同的类库,其中Borland公司的OWL(Object Windows Libray)和Microsoft公司的MFC(Microsoft Foundation Class)是优秀的代表作,尤其是MFC在国内外都得到广泛应用。 C++被数以十万计的程序员应用到几乎每个领域中。早期的应用趋向于系统程序设计,有几个主要操作系统都是用C++写出的:Compbell、Rozier、Hamilton、Berg、Parrington,更多系统用C++做了其中的关键部分。C++还用于写设备驱动程序,或者其他需要在实时约束下直接操作硬件的软件。许多年来,美国的长途电话系统的核心控制依赖于C++。图形学和用户界面是使用C++最深入的领域,如Apple Macintosh或Windows的基本用户界面都是C++程序。此外,一些最流行的支持UNIX中X的库也是用C++写的。C++能够有效地用到各种各样的应用系统中,并且广泛应用于教学和研究。 1.3.2 纯面向对象程序设计语言Java Java是由SUN公司的J.Gosling、B.Joe等人在20世纪90年代初开发出的一种纯面向对象程序设计语言。Java是标准的又是大众化的面向对象程序设计语言。首先,Java作为一种解释型程序设计语言,具有简单性、面向对象性、平台无关性、可移植性、安全性、动态性和健壮性,不依赖于机器结构,并且提供了并发的机制,具有很高的性能;其次,它最大限度地利用了网络,Java的应用程序(Applet)可在网络上传输,可以说是网络世界的通用语言;另外,Java还提供了丰富类库,使程序设计者可以方便地建立自己的系统。因此,Java具有强大的图形、图像、动画、音频、视频、多线程及网络交互能力,使其在设计交互式、多媒体网页和网络应用程序方面大显身手。 Java程序有两种类型:一种是可在Web网页上运行的Applet,称为小应用程序。考虑到网络环境、连接速度等原因,Applet一般都比较小,适合客户端下载,很多网站利用Java开发出了商业网络平台,实现交互运行,还有大量的Applet嵌入到网页,使页面变得更加活泼生动,但Applet不能单独运行,必须嵌入在HTML文件中,由Web浏览器执行;另一种是Application,即应用程序,可完成任何计算任务,运行时不必借助于Web浏览器,可单独执行。 Java从C++发展而来。Java摒弃了C++中许多不合理的内容,真正做到了面向对象。在Java中,一切都是对象。Java通过new运算符创建对象,通过new运算符返回的对象引用来操纵对象,而不是直接操作指针,这样可以防止程序员的误操作而导致的错误。Java通过内存垃圾收集机制,自动管理内存,不需要程序员显式地释放所分配的内存,从而大大减轻了程序员的负担。Java与C++都有类的概念,其最大的差异是C++支持多重继承,而Java只支持单重继承。Java抛弃多重继承是为了使类之间的继承关系更加清晰,不会造成任何混乱。 6 1.3.3 可视化程序设计语言Visual Basic 1991年Microsoft公司推出了基于BASIC语言的可视化面向对象开发工具Visual Basic,标志着软件设计和开发技术一个新时代的开始。在其带动下,相继产生了Visual C++、Visual J++、Visual FoxPro以及Borland Delphi、Power Builder等众多可视化开发工具,这些工具的共同特点是,提供了Windows界面下一些常用界面元素样本。 所谓可视化技术一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用。这里是指前者,即可视化程序设计,是应用可视化开发工具开发图形用户界面(GUI)应用程序的方法。软件开发人员不需编写大量代码去描述界面元素的外观和位置,而只需选定特定界面元素的样本,并用鼠标拖放到屏幕的窗体上,然后再通过不同的方法,编写一些容易理解的事件处理程序,就可完成应用软件的设计。 在 Visual Basic中,既继承了BASIC语言所具有的语法简单、容易学习、容易使用、数据处理能力强的特点,又引入了面向对象、事件驱动的编程机制和可视化程序设计方法,大大降低了开发Windows应用程序的难度,有效地提高了应用程序开发的效率。同时,Visual Basic还兼顾了高级编程技术,不仅可以编写功能强大的数据库应用程序、多媒体处理程序,还可以用来建立客户与服务器应用程序、通过Internet访问遍及全球的分布式应用程序、创建ActiveX控件以及与其他应用程序紧密集成。它可以实现Windows的绝大部分高级功能,如多任务、多文档界面(MDI)、对象的链接与嵌入(OLE)、动态数据交换、动态链接库(DLL)子程序的调用等,尤其是动态链接技术,使得 Visual Basic可以调用 Windows系统的各种资源。 但是,Visual Basic存在语法不严格、开发出的系统稳定性较低的缺点。相对Visual C++语言来说,Visual Basic面向系统底层的编程能力有限,不适合开发系统监控程序,不适合设备驱动程序的开发。比较而言,Visual C++虽然学习起来难度较大,但开发出的系统稳定性高,同时还能使用Visual C++做一些Windows系统下特殊应用的开发,如设备驱动程序等。 1.4 C++对面向对象技术的支持 C++作为一种面向对象程序设计语言,具有对象、类、消息等概念,同时支持面向对象技术的抽象性、封装性、继承性和多态性。 1( C++对抽象性的支持 C++抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和对该类对象的操作,并限定了对象的值只能通过这些操作来修改和调用。 2.C++对封装性的支持 C++将数据和相关操作封装在类中,同时可以用访问权限控制对象内部数据的访问。 3.C++对继承性的支持 C++允许从一个或多个已经定义的类中派生出新的类并继承其数据和操作,同时在新类中可以重新定义或增加新的数据和操作,这样建立起类的层次结构。被继承的类称为基类或父类,派生的新类称为派生类或子类。 4.C++对多态性的支持 7 C++多态分为编译时多态和运行时多态。编译时多态是指在程序的编译阶段由编译系统根据操作数确定需要调用哪个同名的函数;运行时多态是指在程序的运行阶段才根据产生的信息确定需要调用哪个同名的函数。调用不同的函数就意味着执行不同的处理。在C++中,对编译时多态的支持是通过函数重载和运算符重载实现的;对运行时多态的支持是通过继承和虚函数来实现的。 1.5 Visual C++的发展 随着C++逐渐成为ANSI标准,便迅速成为程序员最广泛使用的工具,其开发环境也随之不断地推出。Visual C++从1.0发展到6.0等版本,软件系统逐渐庞大,功能日益完善。 1.5.1 Visual C++ 6.0 1986年Borland公司开发了Turbo C++,而后又推出了 Borland C++。Microsoft公司于20世纪80年代中期在 Microsoft C 6.0的基础上开发了Microsoft C/C++ 7.0,同时引进了类库MFC 1.0版本,完善了源代码。这些版本都是依赖于DOS环境,或在Windows下的DOS模式下运行。随后Microsoft公司推出了Microsoft C/C++ 8.0,即 Visual C++1.0版本,它是Microsoft公司推出的第一个真正基于 Windows环境下的可视化集成开发环境,将编辑、编译、连接和运行集成为一体。由于Internet的流行,在4.0版本中,Visual C++引进了为Internet编程而设计的新类库。5.0版本也增加了一些新类,但注意力更多地集中在改善产品的界面上,以提供一个更好的在线帮助系统、更高级的宏能力和对在开发者组内进行类和其他代码共享的支持。6.0版本在功能上做了进一步的改进。 Visual C++ 一直是用于创建高性能的Windows和Web应用程序与Web服务的最佳语言。Microsoft公司自喻Visual C++是所有开发语言及工具中的“旗舰”。Visual C++不仅是C++语言的集成开发环境,而且与Win32紧密相连,利用Visual C++可以完成各种各样的应用程序的开发,从底层软件直到上层直接面向用户的软件,而且Visual C++强大的调试功能也为大型应用程序的开发提供了有效的排错手段。 1.5.2 Visual C++.NET Visual C++.NET是Microsoft的新一代Visual C++语言。2000年6月22日,Microsoft公司正式推出了Microsoft.NET(以下简称.NET),使Microsoft公司现有的软件在Web时代不仅适用于传统的PC,而且也能够满足新设备的需要,诸如蜂窝电话以及个人数字助理(Personal Digital Assistant,PDA)等。 1..NET简介 .NET是一个开发平台,它定义了一种公用语言子集(Common Language Subset,CLS),这是一种为符合其 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的语言与类库之间提供无缝集成的混合语言。.NET统一了编程类库,提供了对下一代网络通信标准——可扩展标记语言(Extensible Markup Language,XML)的完全支持,使应用程序的开发变得更容易、更简单。Microsoft公司在其软件中添加了手写和语音识别的功能,让人们能够与计算机进行更好地交流。与Microsoft的其他产品一样,.NET与Windows平台紧密集成,其运行库已经与操作系统融合一体。 .NET是一种面向网络、支持各种用户终端的开发平台。Microsoft公司的宏伟目标是让Microsoft.NET彻底改变软件的开发方式、发行方式、使用方式等等,并且面向所有开发商与运营商。.NET的核心内容之一就是要搭建第三代Internet平台,这个网络平台将解决网站之间的协同合作问题,从而最大限度地获取信息。在.NET平台上,不同网站之间通过相 8 关的协定联系在一起,网站之间自动交流,协同工作,提供最全面的服务。总之,.NET战略是一场软件革命。 .NET为使用与开发人员提供了功能强大、种类丰富的管理与开发工具,同时这些工具也是.NET框架提供的服务,.NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算及通信能力。其中,Visual Studio.NET是.NET的核心开发工具,包括了Microsoft公司提供的各种开发语言,其中有Visual C++.NET 和Visual C#等。 2.C#与.NET 当Microsoft公司推出组件对象模型(Component Object Model,COM),通过将组件改变为通用、集成型的构件,开发人员逐渐地从过去的繁杂编程事务中解脱出来,可以选择自己最得心应手的编程语言进行编程。然而,软件组件与应用程序之间的结合仍然是松散的,不同的编程语言与开发平台限制了模块间的互用性,其结果是产生了日益庞大的应用程序与不断升级的软硬件系统。 为了将快速的应用程序开发与对底层平台所有功能的访问紧密结合在一起,Microsoft公司推出了C#。C#是专门为.NET应用而开发的面向对象程序设计语言,C#为C++程序员提供了快捷的开发方式,使得程序员能够在.NET平台上快速开发各种应用程序。同时, C#忠实地继承了 C和C++的基本特征——强大的控制能力及其它优点。 使用C#语言设计的组件能够用于Web服务,通过Internet,可以被运行于任何操作系统上的任何编程语言所调用。C#运行于.NET平台之上,其各种特性与.NET有着密切联系。它没有自己的运行库,许多强大的功能均来自.NET平台的支持。 【本章小结】 面向对象技术源于程序设计,现在已经发展成为软件开发领域的一种方法论。它使计算机解决问题的方式更加类似于人类的思维方式,更能直接描述客观世界,通过增加软件的可扩充性、可重用性和程序自动生成功能来提高编程效率,降低软件维护复杂度,可利用不断扩充的框架产品MFC来快速构建程序。 面向对象技术是一种以对象为基础,以事件或消息驱动对象执行相应的消息处理函数的程序设计技术。它与面向过程的方法最大的不同在于,它是以数据为中心而不是功能为中心,将数据及相应操作封装在一起抽象成一种新的数据类型??类。另外,面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由事件的预定顺序来决定。事件驱动程序执行围绕消息的产生与处理,靠消息循环机制来实现。 类是具有相同属性和行为的对象的集合。类是对象的抽象,对象是类的实例,对象与类的关系如同特殊与一般的关系,如同变量与变量类型的关系。消息是向对象发出的服务请求,事件由多条消息构成。 面向对象技术具有抽象性、封装性、继承性和多态性等基本特征。抽象性是指忽略事物中与当前目标无关的非本质特征的特征;封装性是指把对象的属性和行为封装在一起,并尽可能隐蔽对象的内部细节的特征;继承性是指特殊类的对象拥有其一般类的属性和行为的类与类之间层次关系的特征;多态性是指用相同方式调用具有不同功能的同名函数的特征。 目前常用的几种面向对象程序设计语言中,Java是一种纯面向对象网络程序设计语言,Visual Basic是一种简单的可视化面向对象程序设计语言,C++是一种混合型面向对象程序设计语言。C++可以继续发挥C的底层优势,已经发展成为一种可视化面向对象程序设计语 9 言,并在.NET技术的强大支持下更显“旗舰”的作用。 习题1 1.1 什么是面向对象技术? 1.2 面向对象与面向过程程序设计有什么不同? l.3 面向对象技术有哪些优点? 1.4 面向对象技术中的封装性有何优缺点?如何克服这些缺点? 1.5 为什么要应用继承机制? 1.6 C++对多态性的支持体现在哪些方面? 1.7 目前常用的面向对象程序设计语言有何异同? 1.8 什么是.NET? 10
本文档为【面向对象技术概述】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_358746
暂无简介~
格式:doc
大小:37KB
软件:Word
页数:0
分类:互联网
上传时间:2017-10-15
浏览量:17