(1)从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。
(2)事物的静态特征(即可能用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务表示。
(3)对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其内部细节,即封装。
(4)对事物进行分类。把具有相同属性和服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个示例。
(5)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。
(6)复杂的对象可以用简单的对象作为其构成部分,称作聚合。
(7)对象之间通过消息进行通信,以实现对象之间的动态联系。
(8)通过关联表达对象之间的静态关系。
面向对象把所有程序中出现的量都定义为类,一个合理的类定义中,其属性和方法都是必须的合理的,能够合理描述这个类型完成的任务。
现在让我们把所有这些属性方法分散开来,出现了什么!它变成了C程序的样子,我们无法分清楚多个相同name变量是用来描述什么的,我们需要维护一长串变量列表和函数列表。但是对象语言将一组属性和函数封装在一起,我们声明了一个人的对象便知道他有名字属性和吃饭动作。
我们仅需要维护少量的类型,类型的属性则在我们声明此类的时候明确理解了因此不需要额外的记忆。对象语言设计更加紧凑明了,代码意义更加明确。
(1)从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并以此作为系统的基本构成单位。
(2)事物的静态特征(即可能用一些数据来表达的特征)用对象的属性表示,事物的动态特征(即事物的行为)用对象的服务表示。(3)对象的属性与服务结合为一体,成为一个独立的实体,对外屏蔽其内部细节,即封装。
(4)对事物进行分类。把具有相同属性和服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个示例。
(5)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,面向对象方法支持对这种继承关系的描述与实现,从而简化系统的构造过程及其文档。
(6)复杂的对象可以用简单的对象作为其构成部分,称作聚合。(7)对象之间通过消息进行通信,以实现对象之间的动态联系。
(8)通过关联表达对象之间的静态关系。
你是说面向对象编程(OOP)吗?面向对象编程有两(三?)大特征:封装、继承和多态。
对于Java来说:封装即不公开属性本身,而是公开对属性存取操作的方法(getter/setter),在方法中进行部分逻辑的判断保证属性的值合法(比如年龄必须为大于0的整数);继承可以实现类的重用;多态依赖于继承存在,在子类中重写自父类继承的方法实现对象不同时调用同样方法做出不同响应。之所以说是三大特征是将继承与多态拆开说,但是以我的理解我认为没有继承就没有多态。
把软件系统看成是各种对象的集合,这更接近人的思维。软件需求的变动往往是功能的变动,而功能的执行者。更加符合人类的思维,易于编程。
面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
结构化分析设计方法遵循面向过程的问题求解方法,其中心思想是用计算机能够理解的逻辑来描述和表达待解决的问题及其具体的解决过程。结构化的程序设计的核心就是算法加数据结构。 面向过程方法大多基于瀑布模型,需要对整体结构做以通盘的掌握。当用户的需求发生变化时,整个软件功能就随之发生变化,从而导致整个软件结构的不稳定。同时,过程分析和数据分析始终是两个相对独立的过程,两者之间存在着明显的边界,这个问题始终在结构化方法中终没解决。 对象是面向对象的程序设计的核心,它由描述状态的属性(变量)和用来实现对象行为的方法(函数)组成,完成了从数据模型到处理模型的结合与统一。面向对象方法论的出发点和基本原则是尽可能的模拟人类习惯的思维方式,使开发软件的方法与过程尽可能的接近人类认识世界解决问题的方法与过程。 结构化的程序设计是一种自上而下的设计方法,设计者用一个主函数概括出整个应用程序需要做的事情主线,并由对一系列子函数的调用组成。以函数为中心。 结构化方法是将系统看成是过程的集合,过程与数据实体之间交互,过程接受输入并产生输出; 面向对象方法则不再把程序看成工作在数据上的一系列过程或函数的集合,而是把程序看作是相互协作而又彼此独立的对象的集合。 从概念方面看,结构化软件是功能的集合;面向对象软件是事物对象的集合。 从构成方面看,结构化软件是过程和数据的集合,以过程为中心;面向对象软件是数据和相应操作的封装,以对象为中心。 从运行控制方面看,结构化软件采用顺序处理方式,由过程驱动控制;面向对象软件采用交互式,并行处理方式,由消息驱动控制。
结构化程序设计特点:
优点: 与非结构化程序相比,结构化程序在调试、可读性和可维护性等方面都有很大的改进。
缺点:代码重用性不高:以过程为中心设计新系统,除了一些标准函数,大部分代码都必须重新编写。
由于软、硬件技术的不断发展和用户需求的变化,按照功能划分设计的系统模块容易发生变化,使得开发出来的模块的可维护性欠佳。
面向过程模式将数据与过程分离,若对某一数据结构做了修改,所有处理数据的过程都必须重新修订,这样就增加了很多的编程工作量。
面向对象的优点:
而面向对象围绕现实世界的概念来组织模块,采用对象描述问题空间的实体,用程序代码模拟现实世界中的对象,使程序设计过程更自然、更直观。
面向过程是以功能为中心来描述系统,而面向对象是以数据为中心来描述系统。相对于功能而言,数据具有更强的稳定性。
面向对象模拟了对象之间的通信。就象人们之间互通信息一样,对象之间也可以通过消息进行通信。这样,我们不必知道一个对象是怎样实现其行为的,只需通过对象提供的接口进行通信并使用对象所具有的行为功能。而面向过程则通过函数参数和全局变量达到各过程模块联系的目的。
面向对象把一个复杂的问题分解成多个能够完成独立功能的对象(类),然后把这些对象组合起来去完成这个复杂的问题。采用面向对象模式就象在流水线上工作,我们最终只需将多个零部件(已设计好的对象)按照一定关系组合成一个完整的系统。这样使得软件开发更有效率。
封装
封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用。
在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好像是一个模子铸造出来的.所以对象也叫做类的实例。
在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义。
由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情。
继承
继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性。
继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用。
多态
多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用。
1、强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,使系统能更准确地反映问题域。
2、运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息等基本原则)进行系统开发,有利于发挥人类的思维能力,有效控制系统复杂性。
3、对象的概念贯穿于开发全过程,使各个开发阶段的系统成分具有良好的对应关系,显著提高系统的开发效率与质量,并大大降低系统维护的难度。
4、对象概念的一致性,使参与系统开发的各类人员在开发的各阶段具有共同语言,有效地改善了人员之间的交流和协作。
5、对象的相对稳定性和对易变因素隔离,增强了系统对环境的适应能力。
6、对象、类之间的继承关系和对象的相对独立性,对软件复用提供了强有力的支持。
扩展资料:
在面向对象程序设计中,类作为一个独立的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。
在Java程序设计中,类被认为是一种抽象数据类型,这种数据类型,不但包括数据,还包括方法。这大大地扩充了数据类型的概念。
参考资料来源:
百度百科-面向对象方法
面向对象方法的主要特征有:
1、封装性
封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。
2、继承性
继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继职其它类的全部描述,同时可修改和扩充。
3、多态性
对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。
扩展资料
面向对象方法的优越性
(1)强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,这就使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确地反映问题域。
(2)运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息通讯等基本原则)进行系统开发,有益于发挥人类的思维能力,并有效地控制了系统复杂性。
(3)对象的概念贯穿于开发过程的终,使各个开发阶段的系统成分具良好的对应,从而显著地提高了系统的开发效率与质量,并大大降低系统维护的难度。
(4)对象概念的一致性,使参与系统开发的各类人员在开发的各所段具有共同语言,有效地改善了人员之间的交流和协作。
(5)对象的相对稳定性和对易变因素隔离,增强了系统的应变能力。
(6)对象类之间的继承关系和对象的相对独立性,对软件复用提供了强有力的支持。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.734秒