面向对象思想的理解

面向对象(Object Oriented),如何翻译这个词有很多说法,有人说这个翻译不够准确,应该是“物件导向”更准确,个人认为这个词更直白更好理解,以“物件”为导向目标。

编写软件是为了解决某一问题,OO思想就是在编程过程中把“问题域”中的内容映射到软件系统中的一个个"物件"上,“物件”作为一个独立的个体,有自己的功能、状态以及与其他“物件”之间的联系,这些个体互相作用最终解决问题。

oo是把“问题域”中的内容经过抽象分析,在软件的世界中创造与之对应的对象,这样在思考问题的解决时,更符合人对世界的认识思维模式,毕竟人在现实世界中碰到的问题、思考的问题形成的思维模式更易于理解并具有普遍性。而这些好处,对于软件的开发的可维护性、可扩展性以及可复用性等都是有极大的好处的。

与面向对象对应的是“面向过程(Procedure Oriented)”,它是以过程为中心,分析出解决问题需要的步骤,然后这些步骤一步一步实现,使用的时候一个一个依次调用。这种解决问题的思维模式和我们上学时解数学方程式的方式差不多。我们在学写程序的时候,最开始学的一般也是这种方式,所以对与这种方式应该也不陌生,它也影响了我们在coidng过程中的实现,或者说潜意识的实现。

面向对象和面向过程按发展的时间顺序来看,面向过程在前,面向对象是软件行业发展的一定程度时慢慢兴起的,这是的软件系统所涉及的内容更加多,解决的问题更加复杂,实现的方案更加庞大,这些问题驱使着更加适合的编程思想的出现。我们不能说面向对象的变成就比面向过程的思想好,因为它们在解决不同的问题时,有各自的优势,对于系统级的应用以及需要性能和实时性的模块中,对于那些对系统掌控能力比较强的程序员来说面向过程的编程思想更适合。很多时候,面向对象的编程思想设计实现的代码中包含面向过程的思想。

面向对象(OO)更详细的可以分为OOA,OOD,OOP。采用面向对象进行分析的方式称为OOA,采用面向对象进行设计的方式称为OOD,采用面向对象进行编码的方式称为OOP。面向过程(OP)和面向对象(OO)本质的区别在于分析方式的不同,最终导致了编码方式的不同。我们在拿到一个软件需求时,肯定要先分析需求,然后概要设计、详细设计,最后编码。这和我们习惯的人类基本行为方式的是一样的:先想做什么,再想如何去做,最后才是做事情。

面向对象的四个基本特征 抽象、封装、继承、多态。

抽象就是把事物的信息细节进行提炼、抽象,找到事物的本质和重要属性,以求简化、概括所观察到的现实世界,并为人们所用。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。抽象是软件开发的基础。

封装是将数据以及加在这些数据上的操作组织在一起,成为有独立意义的对象或构件。这些构件隐藏了外部无法直接访问的一些数据,并提供一定的访问接口来进行操作这些数据。信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立行、自治性,使得程序维护修改较为容易。

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。这也是对事物进行抽象分析之后得出的结果。对象的一个新类可以从现有的类中派生,这个过程称为类的继承,新类可以从它所派生的类那里继承方法和实例变量,并且可以修改或增加新的变量、方法使之更适合特殊的需求。继承性很好地解决了软件的可重用性问题。

多态是指对同一操作或消息不同的对象能做出不同的响应。多态性包括参数化多态性包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。其中会涉及的两个概念覆盖和重载,是多态性的表现形式。覆盖,是指子类重新定义父类的虚函数的做法。重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

面向对象的编程思想能够使得人们在编写程序、设计软件的过程中有迹可循,以更加熟悉和普遍的思维模式,更高效地编写出更具有可维护性、可扩展性、可复用性的程序软件,这也是每一个程序员现阶段编程必须具备的基本素质,也是成为更加优秀程序员的必备的知识。

时间: 2024-10-29 00:42:29

面向对象思想的理解的相关文章

12-8面向对象基础--面向对象思想(理解)

一.了解面向对象 1.概念基本理解:1).一个个体可以看做是一个对象,例如:人这个个体: 2).有共同属性的一类作为一个个体,例如:学生.白领.农民工: 3).结构体是用户自定义的数据类型,可以定义不同数据类型的变量,结构体也是面向对象的核心: 2.基本特性: 1)封装:是隐藏信息的特性,具有“封装”意识,是掌握面向对象分析与设计技巧的关键. 最简单的理解:创建一个对象的整体,使对象的属性可以具有赋值.取值的功能,也就是对象中的变量可以赋值.取值.,是一种认为的抽象出来的对象的概念. 例如: 2

面向对象基础--面向对象思想(理解)

一.了解面向对象 1.概念基本理解:1).一个个体可以看做是一个对象,例如:人这个个体: 2).有共同属性的一类作为一个个体,例如:学生.白领.农民工: 3).结构体是用户自定义的数据类型,可以定义不同数据类型的变量,结构体也是面向对象的核心: 2.基本特性: 1)封装:是隐藏信息的特性,具有“封装”意识,是掌握面向对象分析与设计技巧的关键. 最简单的理解:创建一个对象的整体,使对象的属性可以具有赋值.取值的功能,也就是对象中的变量可以赋值.取值.,是一种认为的抽象出来的对象的概念. 例如: 2

面向对象思想设计原则 及常见设计模式

1.面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则. 1)单一职责原则:就是开发人员经常说的”高内聚,低耦合”.也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 2)开闭原则:一个对象对扩展开放,对修改关闭.也就是说,对类的改动是通过增加代码进行的,而不是修改现有代码.软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直

java 28 - 1 设计模式 之 面向对象思想设计原则和模版设计模式概述

在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 单一职责原则 其实就是开发人员经常说的"高内聚,低耦合" 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 开闭原则 核

对“面向对象思想”的通俗化理解

======================面向对象思想================================================== (repost)前言: 整理这份资料的目的是为了帮助朋友们能够更直观的理解面向对象的编程.让后来者能够少走一些弯路.但其中不免有许多漏洞及错误,也还 请前辈提出宝贵的更改意见,毕竟交流会让我们不断的进步. 技术是日新月异的,他不会等待你的成长.技术要拿出来于别人交流,自己学是自己主观意识上的理解,有对有错!交流会让进步变得更快. 我认为如果

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

面向对象思想

面向对象思想 编辑 面向对象的程序设计语言必 须有描述对象及其相互之间关系的语言成分.这些程序设计语言可以归纳为以下几类:系统中一切事物皆为对象:对象是属性及其操作的封装体:对象可按其性质划 分为类,对象成为类的实例:实例关系和继承关系是对象之间的静态关系:消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式:方法是消息的序列. 中文名 面向对象思想 性    质 思想 类    别 程序设计语言 领    域 软件 目录 1 简介 2 理解 3 面向对象 4 存在问题 5 概念特征 6 要

使用面向对象思想处理cookie

实例:使用面向对象思想处理cookie如果读者对cookie 不熟悉,可以在第七章学习它的使用方法,虽然在那里创建了几个通用函数用于cookie 的处理,但这些函数彼此分离,没有体现出是一个整体.联想到JavaScript中Math对象的功能,它其实就是通过Math这个全局对象,把所有的数学计算相关的常量和方法都联系到一起,作为一个整体使用,提高了封装性和使用效率.现在对cookie的处理事实上也可以按照这种方法来进行.6.9.1 需求分析对于cookie 的处理,事实上只是封装一些方法,每个对

什么是面向对象思想

什么是面向对象思想 2016-12-13 15:02 393人阅读 评论(0) 收藏 举报  分类: 版权声明:本文为博主原创文章,未经博主允许不得转载. 面向对象是一种思想,是基于面向过程而言的,就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种优化,操作起来更加的方便,简化了过程.面向对象有三大特征:封装性.继承性.多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问