面向对象百度百科

合集下载

了解一下IOC和AOP

了解一下IOC和AOP

了解⼀下IOC和AOP简单学习⼀下IOC和AOP聊⼀聊 IOC& AOP之前,先解释⼏个问题:AOP的⽼⼤哥OOP和⽼⽼⼤哥POP什么是IoC?IoC 解决了什么问题?什么是 AOP?AOP 解决了什么问题?AOP 为什么叫做切⾯编程?1. 什么是POP,OOP?1. POP (Procedure-Oriented Programming)即⾯向过程编程:“⾯向过程”(Procedure Oriented)是⼀种以过程为中⼼的思想。

这些都是以什么正在发⽣为主要⽬标进⾏编程,不同于的是谁在受影响。

与⾯向对象明显的不同就是、、。

简写为POP --百度百科说⽩了就是分析出解决问题所需要的步骤,然后⽤函数把这些步骤⼀步⼀步实现,使⽤的时候⼀个⼀个依次调⽤就可以。

2. OOP(Object Oriented Programming)即⾯向对象编程:⾯向对象编程(OOP)是⼀种基于“”概念的,它可以包含和代码:形式的数据(通常称为或属性)和代码形式的过程(通常称为)。

--维基百科⾯向对象程序设计⽅法是尽可能模拟⼈类的思维⽅式,使得软件的开发⽅法与过程尽可能接近⼈类认识世界、解决现实问题的⽅法和过程,也即使得描述问题的问题空间与问题的解决⽅案空间在结构上尽可能⼀致,把客观世界中的实体抽象为问题域中的对象。

它具有三⼤特性:封装,继承,多态;2. 什么是IoC?1. IoC (Inversion of control )控制反转/反转控制。

它是⼀种思想不是⼀个技术实现。

描述的是:软件系统开发中领域对象的创建以及管理的问题例如:现在有类A依赖于类B传统开发⽅式(OOP):在类 A 中⼿动通过 new 关键字来 new ⼀个 B 对象出来。

使⽤IOC思想的开发⽅式:不通过 new 关键字来创建对象,⽽是通过 IoC 容器来帮助我们实例化对象。

我们需要哪个对象,直接从 IoC 容器⾥⾯取出即可。

2. 所以使⽤IoC思想我们丧失了创建、管理对象的权⼒,但是省去了我们去创建,管理对象的⿇烦3. 理解⼀下什么叫控制反转控制:指的是对象创建(实例化、管理)的权⼒反转:控制权交给外部环境(IoC 容器)3. IoC 解决了什么问题?1. IOC出现的⽬的就是去除两者之间的相互依赖,由三⽅管理相关资源降低耦合度易于资源管理(例如绝⼤部分IOC容器默认管理的就是单例,帮你实现单例2. 假如有如下场景如果随时代变迁,⼈回家的交通⼯具由马变成了汽车,那么我们需要在所有的⼈类中将交通⼯具的属性初始化修改为汽车的实现类像这样那么我们如果使⽤IOC的思想,我们将对象的控制权(创建、管理)交给 IoC 容器去管理,我们在使⽤的时候由容器来提供这样如果随着时代变迁交通再升级为飞机,那我们只需要调整容器就可以,不需要再每个依赖它的地⽅去修改实现;3. 说到IoC 那就⼀定要提DIIoC 最常见以及最合理的实现⽅式叫做依赖注⼊(Dependency Injection,简称 DI)。

什么是面向对象「什么是面向对象分析方法」

什么是面向对象「什么是面向对象分析方法」

什么是面向对象「什么是面向对象分析方法」面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

面向对象其实是现实世界模型的自然延伸现实世界中任何实体都可以看作是对象对象之间通过消息相互作用另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例如果说传统的面向过程式编程语言是以过程。

在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例面向对象的编程是以对象为中心,以消息为驱动,所以程序=对。

面向对象是指一种程序设计范型,同时也是一种程序开发的方法对象指的是类的集合它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性灵活性和扩展性起初,“面向对象”是专指在程序设计中采用封装。

面向对象相比于面向过程,是两种不同的处理问题的角度面向过程更注重事情的每一个步骤和以及顺序,面向对象更注重事件有哪些参与者,以及各自需要什么比如洗衣机洗衣服,面向过程将会把任务解析成一系列步骤,打开洗衣机放。

面向对象Object Oriented,OO是当前计算机界关心的重点,它是90年代软件开发方法的主流面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围如数据库系统交互式界面应用结构应用平台分布式系统网络管理结构CAD。

你好面向对象就是指把一个应用程序看成是由许多“对象object”组成的,然后去对这些对象编程,让它们具有一定的功能类是具有相同或相似性质的对象的抽象就是类因此,对象的抽象是类,类的具体化就是对象,也可以说。

面向对象如果我没记错的话应该是一门Java语言吧,我记得上大学学计算机的时候学过一点,当然不是计算机专业的,学的水过地皮湿,都是点皮毛而已,具体的你可以找一下计算机相关方面的书来看一下。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在。

简述面向对象的概念

简述面向对象的概念

简述面向对象的概念
面向对象是一种编程思想,将问题抽象成对象,通过对象之间的交互来解决问题。

面向对象的概念包括以下几个要点:
1. 类:类是对象的模板,定义了对象的属性和行为。

它可以看作是一种数据类型,通过实例化类可以创建对象。

2. 对象:对象是类的一个具体实例,具有自己的状态(属性)和行为(方法)。

对象可以相互交互,通过调用方法来完成特定的功能。

3. 封装:封装是面向对象的一种特性,将数据和操作数据的方法封装在一个对象中,隐藏内部实现细节,只提供对外的接口。

4. 继承:继承是指一个类可以派生出子类,子类继承了父类的属性和方法,并可以在此基础上进行扩展或修改。

5. 多态:多态是指同一类型的对象,在不同的情况下可以呈现出不同的行为。

通过继承和重写父类的方法,实现不同对象对同一消息的响应。

面向对象的编程思想使得程序的设计更加灵活和易于维护,通过抽象、封装、继承和多态,可以提高代码的复用性、可扩展性和可读性。

面向对象的名词解释是什么

面向对象的名词解释是什么

面向对象的名词解释是什么在计算机科学中,面向对象(Object-Oriented)是一种编程范式,它将系统的组织和设计建立在对象的概念上。

面向对象编程的核心理念是将问题分解成不同的对象,每个对象都有自己的状态和行为,并且能够与其他对象进行交互。

面向对象编程的基本概念是“类”和“对象”。

类是一种抽象的概念,描述了一组具有相同属性和行为的对象。

通过类的定义,我们可以创建一些具体的实例,即对象。

对象是类的具体实例化,它拥有类定义的属性和行为。

在面向对象的编程中,我们通过创建对象来解决问题,每个对象都具有自己的数据和可执行的代码。

面向对象编程具有许多特性,其中最重要的是封装、继承和多态。

封装是面向对象编程的基本原则之一。

它指的是将数据和相关操作封装在单个对象中,同时隐藏对象内部的细节。

通过封装,我们可以将对象的数据和行为组织在一起,使其成为一个独立的实体。

封装有助于减少代码的耦合性,提高代码的可维护性和复用性。

继承是面向对象编程的另一个重要概念。

继承允许我们创建一个新的类,该类继承现有类的属性和行为。

新类称为子类或派生类,而被继承的类称为父类或基类。

通过继承,子类可以重用父类的代码,并且可以在其基础上进行扩展或修改。

继承可以提高代码的可读性和可维护性,同时也促进了代码的重用。

多态是面向对象编程的第三个重要特性。

多态允许不同的对象对相同的消息作出不同的响应。

具体来说,多态使我们可以使用一个通用的接口来处理不同类型的对象,而不需要关心对象的具体类型。

这种特性使得代码更加灵活和可扩展,使得程序具有更好的适应性和可复用性。

除了封装、继承和多态,面向对象编程还有其他一些重要的概念,如抽象、接口和消息传递等。

抽象指的是将问题的共同特征提取出来,形成类或接口的过程。

接口定义了类所提供的方法和属性,它为类提供了一种协议,规定了类和外部世界之间的交互方式。

消息传递是面向对象编程中对象之间通信的方式,对象通过发送消息来请求其他对象执行某个操作。

面向对象的概念是什么?和面向过程有什么区别

面向对象的概念是什么?和面向过程有什么区别

面向对象的概念是什么?和面向过程有什么区别?面向对象是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。

面向过程,也就是结构化程序设计是一种自顶向下逐步求精的设计方法,和单入口单出口的程序结构。

面向对象的概念,特点是什么?1.编程模型所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如C 等过程化语言.第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.2.抽象面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.管理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应./* (我的理解)*计算机是一个实体,我要输入字符,显示器显示出来,那么*计算机(对象).输入(键盘属性).显示(显示方法)*使用分层来引用,操作.而不用管计算机内部如何处理.*只要有计算机对象,它就能响应我的操作,而我敲键盘,*计算机对象就把这个消息传给屏幕,屏幕显示.*/计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.3.封装封装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节就能直接使用它,同时不用担心不可预料的副作用.在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JA VA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.4.继承继承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.5.多态多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.6.封装,继承,多态的组合使用在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序类是对象的抽象,实例是类的实现C++中对象和类有何联系和区别:它的区别就像int a = 0;中的int 和a 的区别一样。

面向对象技术概述

面向对象技术概述

1.1 知识要点1.面向对象技术的基本概念∙面向对象技术是以对象为基础、以事件或者消息来驱动对象执行处理的程序设计技术。

∙对象是包含客观事物特征的抽象实体,是属性和行为的封装体。

在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。

∙类是对具有相同属性和行为的一组对象的抽象描述。

∙事件是系统产生的动作或是运行应用程序产生的动作。

事件通过消息描述,消息是描述事件发生的信息。

∙消息是对象间交互的手段,是要求某个对象执行某个操作的规格说明。

2.面向对象技术的基本特征∙抽象性是指忽略事物中与当前目标无关的非本质特征,而强调本质特征的特征。

∙封装性是指把对象的属性和行为封装在一起,并尽可能隐藏对象的内部细节的特征。

∙继承性是指特殊类的对象拥有其一般类的属性和行为的类与类之间层次关系的特征。

∙多态性是指不同对象收到相同消息时可以产生多种不同的行为方式的特征。

【重点】∙面向对象技术的概念。

∙类与对象的概念及关系。

∙面向对象与面向过程程序设计的区别。

∙面向对象技术的基本特征。

面向对象技术与Visual C++学习指导2【难点】∙类与对象的概念。

∙面向对象与面向过程程序设计的区别。

∙面向对象技术的基本特征。

1.2 习题解答1.什么是面向对象技术?【问题解答】面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。

它具有抽象性、封装性、继承性及多态性。

2.面向对象与面向过程程序设计有什么不同?【问题解答】面向对象与面向过程程序设计有如下不同:(1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。

(2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。

(3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。

面向对象编程的基本概念

面向对象编程的基本概念

面向对象编程的基本概念面向对象编程的基本概念随着计算机技术的不断发展和应用的深入,编程语言也不断演化,出现了各种面向对象编程语言,如Java、C++、Python等。

面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将计算机程序模块化,以对象作为程序设计的基本单元进行组织和设计。

本文将从面向对象编程的概念、特点、实现方式、应用等方面进行详细介绍。

一、面向对象编程的概念面向对象编程是一种编程思想和方法,它将现实世界的事物抽象为“对象”,以及对象之间的交互,来进行程序设计和模块化。

对象是指具有属性和方法的实体,它既可以是现实世界中的事物,也可以是抽象的概念,如字符串、整数、函数等。

而方法则是对象的行为,用于操作对象的属性,实现某种功能。

面向对象编程的核心思想就是封装、继承和多态。

二、面向对象编程的特点1、抽象化和封装化面向对象编程通过抽象化和封装化,将复杂的现实世界事物抽象为简单的对象,并将对象的内部细节隐藏起来,使得外部只能通过对象的接口来访问对象,从而实现了信息的隐藏和保护。

2、继承性继承性是面向对象编程的一个重要特点,它允许创建一个新的类,并从一个或多个现有类中继承属性和方法,从而减少了代码的冗余,提高了代码的重用性和灵活性。

3、多态性多态性是面向对象编程的另一个重要特点,它允许不同类型的对象调用同一个方法,不同对象按照自己的方式去实现这个方法,从而增强了程序的灵活性和可扩展性。

三、面向对象编程的实现方式1、类和对象类是具有相同属性和方法的对象的集合,它是面向对象编程的基本概念。

对象是类的实例,包含了类的所有属性和方法,可以通过对象来访问类的属性和方法。

2、封装封装是面向对象编程的特有功能,它可以将属性和方法隐藏起来,只留下外界可以访问的接口,从而达到保护数据的目的。

3、继承和多态继承是面向对象编程中的另一个重要概念,它可以复用已有的代码,减少代码冗余,提高代码的可重用性。

面向对象通俗理解

面向对象通俗理解

面向对象通俗理解
面向对象是一种程序设计方法,它将数据和操作结合起来,并将其封装在一起,形成一个对象。

对象具有属性和方法,可以和其他对象进行交互。

面向对象的编程思想强调模块化和重用性,使得程序更易于维护和扩展。

一个对象由属性和方法组成。

属性是对象的特征,例如人的姓名、年龄、性别等;方法是对象可以执行的操作,例如人可以走路、说话、吃饭等。

对象可以用类来描述,类定义了对象的属性和方法,并且可以用来创建多个对象。

面向对象的编程思想有三个基本特征:封装、继承和多态。

封装指将数据和操作封装在一起,只对外提供必要的接口;继承指子类可以继承父类的属性和方法,并且可以进行修改和扩展;多态指相同的方法可以处理不同类型的对象,例如动物可以有不同的子类,都可以调用“吃”的方法。

面向对象的编程思想可以使得程序更易于理解和维护,因为它将复杂的问题分解成多个简单的对象,并且对象之间可以相互协作。

它也可以提高程序的重用性和可扩展性,因为可以通过继承和多态来创建新的类和对象,而不需要重新编写大量的代码。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

理论历史1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。

20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言,之后又开发出Smalltalk-80,Smalltalk-80被认为是最纯正的面向对象语言,它对后来出现的面向对象语言,如Object-C,C++,Self,Eiffl 都产生了深远的影响。

随着面向对象语言的出现,面向对象程序设计也就应运而生且得到迅速发展。

之后,面向对象不断向其他阶段渗透,1980年Grady Booch 提出了面向对象设计的概念,之后面向对象分析开始。

1985年,第一个商用面向对象数据库问世。

1990年以来,面向对象分析、测试、度量和管理等研究都得到长足发展。

实际上,“对象”和“对象的属性”这样的概念可以追溯到20世纪50年代初,它们首先出现于关于人工智能的早期著作中。

但是出现了面向对象语言之后,面向对象思想才得到了迅速的发展。

过去的几十年中,程序设计语言对抽象机制的支持程度不断提高:从机器语言到汇编语言,到高级语言,直到面向对象语言。

汇编语言出现后,程序员就避免了直接使用0-1,而是利用符号来表示机器指令,从而更方便地编写程序;当程序规模继续增长的时候,出现了Fortran、C、Pascal 等高级语言,这些高级语言使得编写复杂的程序变得容易,程序员们可以更好地对付日益增加的复杂性。

但是,如果软件系统达到一定规模,即使应用结构化程序设计方法,局势仍将变得不可控制。

作为一种降低复杂性的工具,面向对象语言产生了,面向对象程序设计也随之产生。

编辑本段基本概念面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。

通过这些概念面向对象的思想得到了具体的体现。

1)对象(Object) 可以对其做事情的一些东西。

一个对象有状态、行为和标识三种属性。

2)类(class) 一个共享相同结构和行为的对象的集合。

3)封装(encapsulation):第一层意思:将数据和操作捆绑在一起,创造出一个新的类型的过程。

第二层意思:将接口与实现分离的过程。

4)继承类之间的关系,在这种关系中,一个类共享了一个或多个其他类定义的结构和行为。

继承描述了类之间的“是一种”关系。

子类可以对基类的行为进行扩展、覆盖、重定义。

5)组合既是类之间的关系也是对象之间的关系。

在这种关系中一个对象或者类包含了其他的对象和类。

组合描述了“有”关系。

6)多态类型理论中的一个概念,一个名称可以表示很多不同类的对象,这些类和一个共同超类有关。

因此,这个名称表示的任何对象可以以不同的方式响应一些共同的操作集合。

7)动态绑定也称动态类型,指的是一个对象或者表达式的类型直到运行时才确定。

通常由编译器插入特殊代码来实现。

与之对立的是静态类型。

8)静态绑定也称静态类型,指的是一个对象或者表达式的类型在编译时确定。

9)消息传递指的是一个对象调用了另一个对象的方法(或者称为成员函数)。

10)方法也称为成员函数,是指对象上的操作,作为类声明的一部分来定义。

方法定义了可以对一个对象执行那些操作。

[1]编辑本段基本理论一项由Deborah J. Armstrong进行的长达40年之久的计算机著作调查显示出了一系列面向对象程序设计的基本理论。

它们是:类(Class)定义了一件事物的抽象特点。

通常来说,类定义了事物的属性和它可以做到的(它的行为)。

举例来说,“狗”这个类会包含狗的一切基础特征,例如它的孕育、毛皮颜色和吠叫的能力。

类可以为程序提供模版和结构。

一个类的方法和属性被称为“成员”。

编辑本段历史计算机科学中对象和实例概念的最早萌芽可以追溯到麻省理工学院的PDP-1系统。

这一系统大概是最早的基于容量架构(capability based architecture)的实际系统。

另外1963年Ivan Sutherland的Sketchpad应用中也蕴含了同样的思想。

对象作为编程实体最早是于1960年代由Simula 67语言引入思维。

Simula这一语言是奥利-约翰·达尔和克利斯登·奈加特在挪威奥斯陆计算机中心为模拟环境而设计的。

(据说,他们是为了模拟船只而设计的这种语言,并且对不同船只间属性的相互影响感兴趣。

他们将不同的船只归纳为不同的类,而每一个对象,基于它的类,可以定义它自己的属性和行为。

)这种办法是分析式程序的最早概念体现。

在分析式程序中,我们将真实世界的对象映射到抽象的对象,这叫做“模拟”。

Simula不仅引入了“类”的概念,还应用了实例这一思想——这可能是这些概念的最早应用。

20世纪70年代施乐PARC研究所发明的Smalltalk语言将面向对象程序设计的概念定义为,在基础运算中,对对象和消息的广泛应用。

Smalltalk的创建者深受Simula 67的主要思想影响,但Smalltalk中的对象是完全动态的——它们可以被创建、修改并销毁,这与Simula中的静态对象有所区别。

此外,Smalltalk还引入了继承性的思想,它因此一举超越了不可创建实例的程序设计模型和不具备继承性的Simula。

此外,Simula 67的思想亦被应用在许多不同的语言,如Lisp、Pascal。

面向对象程序设计在80年代成为了一种主导思想,这主要应归功于C++——C 语言的扩充版。

在图形用户界面(GUI)日渐崛起的情况下,面向对象程序设计很好地适应了潮流。

GUI和面向对象程序设计的紧密关联在Mac OS X中可见一斑。

Mac OS X是由Objective-C语言写成的,这一语言是一个仿Smalltalk的C 语言扩充版。

面向对象程序设计的思想也使事件处理式的程序设计更加广泛被应用(虽然这一概念并非仅存在于面向对象程序设计)。

一种说法是,GUI的引入极大地推动了面向对象程序设计的发展。

苏黎世联邦理工学院的尼克劳斯·维尔特和他的同事们对抽象数据和模块化程序设计进行了研究。

Modula-2将这些都包括了进去,而Oberon则包括了一种特殊的面向对象方法——不同于Smalltalk与C++。

面向对象的特性也被加入了当时较为流行的语言:Ada、BASIC、Lisp、Fortran、Pascal以及种种。

由于这些语言最初并没有面向对象的设计,故而这种糅合常常会导致兼容性和维护性的问题。

与之相反的是,“纯正的”面向对象语言却缺乏一些程序员们赖以生存的特性。

在这一大环境下,开发新的语言成为了当务之急。

作为先行者,Eiffel成功地解决了这些问题,并成为了当时较受欢迎的语言。

在过去的几年中,Java语言成为了广为应用的语言,除了它与C和C++语法上的近似性。

Java的可移植性是它的成功中不可磨灭的一步,因为这一特性,已吸引了庞大的程序员群的投入。

近日,一些既支持面向对象程序设计,又支持面向过程程序设计的语言悄然浮出水面。

它们中的佼佼者有Python、Ruby等等.正如面向过程程序设计使得结构化程序设计的技术得以提升,现代的面向对象程序设计方法使得对设计模式的用途、契约式设计和建模语言(如UML)技术也得到了一定提升。

编辑本段语言一种语言要称为面向对象语言,必须支持面向对象几个主要的概念。

根据支持程度的不同,通常所说的面向对象语言可以分成两类:基于对象的语言和面向对象的语言。

基于对象的语言基于对象的语言仅支持类和对象,举例来说,Ada就是一个典型的基于对象的语言,因为它不支持继承、多态,此外其他基于对象的语言还有Alphard、CLU、Euclid、Modula。

面向对象的语言面向对象的语言支持的概念包括:类与对象、继承、多态。

面向对象的语言中一部分是新发明的语言,如Smalltalk、Java,这些语言本身往往吸取了其他语言的精华,而又尽量剔除他们的不足,因此面向对象的特征特别明显,充满了蓬勃的生机;另外一些则是对现有的语言进行改造,增加面向对象的特征演化而来的。

如由Pascal发展而来的Object Pascal,由C发展而来的Objective-C,C++,由Ada发展而来的Ada 95等,这些语言保留着对原有语言的兼容,并不是纯粹的面向对象语言,但由于其前身往往是有一定影响的语言,因此这些语言依然宝刀不老,在程序设计语言中占有十分重要的地位。

编辑本段优点面向对象出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程的程序设计。

在面向过程程序设计中,问题被看作一系列需要完成的任务,函数(在此泛指例程、函数、过程)用于完成这些任务,解决问题的焦点集中于函数。

其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。

在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。

每个函数都可以具有它们自己的局部数据。

这种结构很容易造成全局数据在无意中被其他函数改动,因而程序的正确性不易保证。

面向对象程序设计的出发点之一就是弥补面向过程程序设计中的一些缺点:对象是程序的基本元素,它将数据和操作紧密地连结在一起,并保护数据不会被外界的函数意外地改变。

比较面向对象程序设计和面向过程程序设计,还可以得到面向对象程序设计的其他优点:1)数据抽象的概念可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰;2)通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度;3)结合面向对象分析、面向对象设计,允许将问题域中的对象直接映射到程序中,减少软件开发过程中中间环节的转换过程;4)通过对对象的辨别、划分可以将软件系统分割为若干相对为独立的部分,在一定程度上更便于控制软件复杂度;5)以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统;6)通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。

编辑本段设计方法在数据输入模块内部设计中,采用面向对象的设计方法。

[6]面向对象的基本概念如下:对象:对象是要研究的任何事物。

从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。

对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。

从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。

在对内的操作通常称为方法。

相关文档
最新文档