面向对象的方法有哪些

生活 2019-06-14 00:32:46 733

本文收集整理关于面向对象的方法有哪些的相关议题,使用内容导航快速到达。

内容导航:

  • Q1:在面向对象的方法中,不属于对象的基本特点是哪个
  • Q2:面向对象方法的由来发展
  • Q3:面向对象软件开发方法的优点有哪些?
  • Q4:面向对象方法的主要特征有哪些?
  • Q1:在面向对象的方法中,不属于对象的基本特点是哪个

    (1)对象唯一性。
    每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
    (2)分类性。
    分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
    (3)继承性。
    继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
    (4)多态性(多形性)
    多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
    多态性允许每个对象以适合自身的方式去响应共同的消息。
    多态性增强了软件的灵活性和重用性。
    这些都是直接复制你的题目百度的结果
    所以选AWWw.y^iJItAO.COM

    Q2:面向对象方法的由来发展

    回顾历史可激励现在,以规划将来。
    OO方法起源于面向对象的编程语言(简称为OOPL)。50年代后期,在用FORTRAN语言编写大型程序时,常出现变量名在程序不同部分发生冲突的问题。鉴于此,ALGOL语言的设计者在ALGOL60中采用了以Begin……End为标识的程序块,使块内变量名是局部的,以避免它们与程序中块外的同名变量相冲突。这是编程语言中首次提供封装(保护)的尝试。此后程序块结构广泛用于高级语言如Pascal 、Ada、C之中。
    60年代中后期,Simula语言在ALGOL基础上研制开发,它将ALGOL的块结构概念向前发展一步,提出了对象的概念,并使用了类,也支持类继承。70年代,Smalltalk语言诞生,它取Simula的类为核心概念,它的很多内容借鉴于Lisp语言。由Xerox公司经过对Smautalk72、76持续不断的研究和改进之后,于1980年推出商品化的,它在系统设计中强调对象概念的统一,引入对象、对象类、方法、实例等概念和术语,采用动态联编和单继承机制。
    从80年代起,人们基于以往巳提出的有关信息隐蔽和抽象数据类型等概念,以及由Modula2、Ada和Smalltalk和等语言所奠定的基础,再加上客观需求的推动,进行了大量的理论研究和实践探索,不同类型的面向对象语言(如:Object-c、Eiffel、c++、Java、Object-Pascal等)逐步地发展和建立起较完整的和雨后春笋般研制开发出来,OO方法的概念理论体系和实用的软件系统。
    面向对象源出于Simula,真正的OOP由Smalltalk奠基。Smalltalk现在被认为是最纯的OOPL。
    正是通过Smalltalk80的研制与推广应用,使人们注意到OO方法所具有的模块化、信息封装与隐蔽、抽象性、继承性、多样性等独特之处,这些优异特性为研制大型软件、提高软件可靠性、可重用性、可扩充性和可维护性提供了有效的手段和途径。
    80年代以来,人们将面向对象的基本概念和运行机制运用到其它领域,获得了一系列相应领域的面向对象的技术。面向对象方法已被广泛应用于程序设计语言、形式定义、设计方法学、操作系统、分布式系统、人工智能、实时系统、数据库、人机接口、计算机体系结构以及并发工程、综合集成工程等,在许多领域的应用都得到了很大的发展。1986年在美国举行了首届面向对象编程、系统、语言和应用(OOPSLA86)国际会议,使面向对象受到世人瞩目,其后每年都举行一次,这进一步标志OO方法的研究已普及到全世界。

    Q3:面向对象软件开发方法的优点有哪些?

    把软件系统看成是各种对象的集合,这更接近人的思维。软件需求的变动往往是功能的变动,而功能的执行者。更加符合人类的思维,易于编程。
    面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

    Q4:面向对象方法的主要特征有哪些?

    面向对象的编程语言(Object-oriented Programming Language)是专门为面向对象观念而发展出来的,通过它可以便捷地实现面向对象的封装、继承、多态等特性。1.封装封装是一种信息隐藏技术,即对象内部对用户是隐藏的,不可直接访问;用户只能见到对象封装界面上的信息,通过对象的外部接口访问对象。封装的目的在于将对象的使用者和对象的设计者分开,使用者无须知道对象内部实现的细节,只需要知道对象接收的消息即可。当用户向对象发送消息后,对象将根据收到的消息来调用内部方法以做出响应。在C++语言中,对象的构成由类来描述,每个类的成员可以分为私有和公有两种类型,对象的外部不能直接访问对象的私有部分。对象的封装特性可以提高模块之间的独立性,使得系统易于调试和维护。假设应用系统中有两个模块:一个模块从计算机的串行通讯口接收数据,放入缓冲区;另一个为数据处理模块。数据处理模块可以直接访问缓冲区,从缓冲区中读取数据。此时这两个模块之间的关联程度密切,模块独立性很差。如果接收数据的模块改变缓冲区的管理方法,则第二个模块必须做相应的改变。如果数据处理模块对缓冲区操作有误,将影响数据接收模块,在程序调试时难以确定错误发生在哪一个模块中。实际上,数据处理模块并不需要缓冲区的管理信息,它只需要知道缓冲区中有没有数据以及有什么样的数据。上面的处理方法违反了软件工程中的信息隐藏原则,数据处理模块访问了它不需要的信息。将数据接收模块封装为一个对象,缓冲区的管理信息作为其私有数据,即可避免上面的问题。数据接收模块只要提供一个从缓冲区获得数据的接口即可。数据处理模块只能访问该接口,而不能直接操作缓冲区。此时两个模块之间的独立性提高,如需改变缓冲区的管理方法,只需修改数据接收模块,数据处理模块将不受任何影响,因为数据接收模块提供的外部接口没有改变。2.继承人们在对客观世界的事物进行描述时,经常采取分类的方法。类是有层次的,即某个大类的事物可能分为若干小类,而这些小类可能又分为若干个更小的类。面向对象思想采纳了事物分类的层次思想,在描述类的时候,某些类之间具有结构和行为的共性。例如教师类与学生类,在结构方面均具有姓名、年龄、身高、体重等,在行为(或操作)方面均具有回答身高、回答体重等操作。将这些共性抽取出来,形成一个单独的类--人,描述教师类和学生类中的共性。类(人)的结构特征和行为特征可以被多个相关的类共享,例如教师类和学生类继承了人的结构和行为特征。在C++语言中,通过类的派生机制来实现类的继承,可以从一个类中派生出一个新的类,这个类称为派生类的基类或父类,派生出的新类称为基类的派生类或子类。派生类的对象具有基类对象的特征,同时又有其自身特有的特征。一个教师类的对象与一个学生类的对象都具有人这个类所描述的特征,同时又具有教师类和学生类各自所特有的特征。利用类之间的继承关系,可以简化类的描述。在人这个类中描述教师类和学生类的共性,而在学生类和教师类中只需描述各自的个性。利用继承机制可以提高软件代码的可重用性。在设计一个新类时,不必从头设计和编写全部的代码,可以通过从已有的具有类似特性的类中派生出一个类,继承原有类中的部分特性,再加上所需要的新特性。这一点与面向过程的设计语言中的过程或函数不同,在面向过程的设计语言中,要使用具有相似功能的过程或函数,必须修改源程序代码以使其适应新系统的功能需求,而类的派生机制无需原有类的源代码即可派生出新的类。利用类及其继承性描述系统时,由于类之间的继承关系,可能会形成一种具有层次性的类结构。在使用类的层次结构描述系统时,某些类之间的层次关系可以有多种实现方案。例如中学生类,既可以直接从人这个类派生出来,也可以从人这个类的派生类--学生类派生出来。在设计类的层次结构时,应注意建立的类层次结构是否易于理解以及组织类结构的费用等方面的问题。设计出来的类层次结构是否合理,往往取决于系统分析员的经验等因素。3.多态性多态性是面向对象系统的又一重要特性。所谓多态,即一个名词可具有多种语义。在C++语言中,多态性主要表现在以下两个方面。(1) 重载在C++语言中,同一函数名以及运算符可以具有不同含义的多种实现版本,编译器将根据函数调用的参数形式决定调用哪一种实现版本。(2) 虚函数C++语言引入了虚函数机制,允许在不同类层次对象中应用函数成员的不同版本。例如实现一个类Shape,然后从该类派生出画点的类Point、画圆的类Circle、画直线的类Line,每一种图形的画法均不同,但是它们都有几种共同的操作--显示图形、擦除图形、移动图形。移动图形的操作都是首先擦除图形,然后改变图形的位置基准点,再在新位置显示出图形。在类Shape中实现移动图形的操作,每种图形的显示、擦除、改变基准点等操作在派生类中分别实现。若程序中使用某图形对象的移动操作,编译器采用动态联编的手段,在执行时根据该图形对象是哪一个类的实例,决定调用哪一个类的显示、擦除、改变基准点的方法。这种多态性称为运行时的多态性。而重载在编译时编译器即可确定使用哪一个实现版本,是静态的。

    WWW.yIJITAO.^cOM

    相关文章
    面向对象和面向过程2019-01-14
    面向对象 面向过程区别2019-01-14
    如何理解面向对象思想2019-01-17
    减腰部赘肉的运动方法2018-08-26
    房顶漏水最好补漏方法2018-08-26
    菜刀生锈除锈的方法最好用2018-08-27
    提高注意力的训练方法2018-08-27
    改善皮肤暗黄的5种方法2018-08-27
    白发变黑发最好的方法2018-08-28
    金矿石提炼最简单方法2018-08-29