面向过程、面向对象及面向对象的三大特征

面向过程:procedure oriented programming POP

面向对象:object oriented programming OOP

了解面向对象,我们来了解一下面向对象中的核心概念类和对象

:类是对某一类事物的描述,是抽象的、概念上的定义。

对象:现实世界中客观存在的事务就称为对象。在java中,万物皆对象,对象是用来描述客观事物的一个实体,由一组属性和方法构成。

类与对象的关系:类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。

面向过程到面向对象的历程:面向过程编程采取的是时间换空间的策略,因为在早期计算机配置低,内存小,如何节省内存则成了首要任务,哪怕是运行的时间更长。随着硬件技术的发展,硬件不再成为瓶颈,相反更好的模拟现实世界、系统的可维护性等问题凸显出来,于是面向对象设计应运而生。当下:应用在pc机上的一般应用系统,由于不太需要考虑硬件的限制,而系统的可维护性等方面却要求很高,一般采用面向对象方式;而在内存限制有所要求的嵌入式系统,则大多采用面向过程方式进行设计编程。

两者起始区别:

面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可。

面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。

面向对象相对面向过程的优势:

面向对象保证了功能的统一型,从而为扩展打下基础。现在要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。由此可以看出面向对象更易于扩展。

面向对象的三大特征

  • 封装:

  封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节不被外界发现,外界只能通过接口使用该对象,而不能通过任何形式修改对象内部实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细节及实现操作的方法。使用封装能隐藏对象实现细节,使代码更易维护,同时因为不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。

  • 继承:

  继承来源于现实世界,一个最简单的例子就是孩子会具有父母的一些特征,即每个孩子都会继承父亲或者母亲的某些特征,当然这只是最基本的继承关系,现实世界中还存在着更复杂的继承,面向对象之所以使用继承机制主要是用于实现代码的复用多个类所公用的代码部分可以只在一个类中提供,而其他类只需要继承即可。

  • 多态:

  多态与继承纤细紧密,是面向对象编程中另一个突出的特征,所谓的多态是指在继承体系中,所有派生类都从基类继承接口,但由于每个派生类都是独立的实体,因此在接收同一消息的时候,可能会生成不同的响应。多态的作用作为隐藏代码实现细节,使得代码能够模块化;扩展代码模块,实现接口重用。简单来说:一种行为产生多种效果。

原文地址:https://www.cnblogs.com/liujinhua1221/p/9391625.html

时间: 2024-11-29 10:18:48

面向过程、面向对象及面向对象的三大特征的相关文章

Java面向对象设计主要有三大特征:封装性、继承性和多态性

一  封装性   1.1  概念:它是将类的一些敏感信息隐藏在类的类部,不让外界直接访问到,但是可以通过getter/setter方法间接访问. 1.2  目的:我们可以并且有可能在方法中,添加自己的限制,保证数据的有效性:从某种程度上说,封装也提高了代码的健壮性.安全性. 1.3  实现步骤:所有的成员变量全部私有化,格式 :private   数据类型  变量名  ,提供访问成员变量的getter/setter方法. 二  继承性   2.1  概念:子类通过一种方式来接受父类所有的公有的,

面向对象的设计的三大特征:三.封装

添加新的程序集: 右击解决方案—添加—新建项目—类库 选择主项目—引用—右键添加引用 using 程序集 类的访问修饰符: 类的访问性有两个级别:public 和 internal 标记为Public的类可以被系统内的任何程序集访问: 标记为internal的类只能被它自己所在的程序集中的类看到,默认为internal访问级别 成员的访问修饰符 1. 所有显式声明在类的声明中的成员都是相互可见的,无论它们的访问性说明如何 2. 必须对每个成员指定成员访问级别.如果不指定某个成员的访问级别,它的隐

再次理解面向对象和面向过程

什么是面向对象,什么是面向过程,已经是一个老生常谈的问题,我在这里不想大篇幅说一大推什么东西,结果其实懂还是没懂,都很难说.我从自己编程的经验来看. 面向对象的精髓有3个:面向接口编程(接口这里指的是抽象)解耦,还有一个忘了 面向对象的特征有四个:封装,继承,抽象,多态,这些特征绝对不是从语言上来去描述,而是什么,而是是从面向对象的思想角度去想得. 前几天看了个KNN算法,用Java语言编写程序是:直接写个Main函数,然后写几个函数实现下,虽然什么也实现了,虽是面向对象语言,但还是面向过程思维

Java面向对象编程三大特征 - 封装

Java面向对象编程三大特征 - 封装 本文关键字:Java.面向对象.三大特征.封装封装是面向对象编程中的三大特征之一,在对封装性进行解释时我们有必要先了解一些面向对象的思想,以及相关的概念.当我们想要去描述一系列的关系时我们要用到的最基本结构就是类,其中存在着成员变量和方法,用于记录属性和表达行为,相关知识请进传送门:Java中的基本操作单元 - 类和对象. 一.名词解读 为了解释封装的概念和作用,需要先来了解一下几个相关的概念,这有助于我们接下来的理解. 1. 权限修饰符 当我们在一个类中

心得 : 面向对象和面向过程的区别

面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统.微观上,仍然使用面向过程. "面向过程"是一种是事件为中心的编程思想.就是分析出解决问题所需的步骤,然后用函数把这写步骤实现,并按顺序调用. "面向对象"是以"对象"为中心的编程思想. 简单的举个例子:汽车发动.汽车到站.汽车启动是一个事件,汽车到站是另一个事件,面向过程编程的过程中我们关心的是事件,而不是汽车本身.针对上述两个事件,

.NET 高级架构师0002 架构师之路(1)---面向过程和面向对象

1.引言     机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到.但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c.ctrl-v用得更加纯熟了.在中国,编程人员最终的归途无外乎两条:一是转向技术管理,它的终点是CTO:二是继续深入,它的终点是首席架构师,成为CEO的人毕

o'c基础第一天面向过程与面向对象

1. OC将C的复杂的东西简单 a. #import 指令. b. NSLog函数. c. NSString d. BOOL 2. OC在C的基础之上增加了一些面向对象的语法. 面向过程 面向对象. 是解决问题的不同的思路. 1). 将大象放进冰箱. a. 打开冰箱门. b. 把大象放进冰箱 c. 把冰箱门关上. 面向对象. 找到1个冰箱. 只要这个冰箱有自动开门 自动拉近大象 自动关门. 2). 买电脑的需求 a. 根据自己的预算和需求确定型号. 查找资料. b, rMBP 9288 c, 到

面向对象和面向过程的区别

面向对象和面向过程 1.面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:输入——运算——输出.面向过程程序设计者需要变更习惯的思维方法以贴近 计算机的内部工作机理.面向过程程序设计所具有的流的工作性质,试图通过信息流及其转换来认识系统,不仅加大了程序设计的难度,同时亦使得程序的可理解性 比较差. 面向对象程序设计方法中,一种普遍采用的优化方法是使用结构化的程序设计方法. 面向过程程序设计方法一般适宜采用自上而下的设计方法. 面向过程程序设计方法需要在一开始就全面的,自上而

面向对象-面向对象和面向过程的区别

两者都是软件开发思想,先有面向过程,后有面向对象.在大型项目中,针对面向过程的不足推出了面向对象开发思想. 区别 1. 编程思路不同: 面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类.属性及其方法,然后通过实例化类.执行方法来完成功能. 2. 封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能. 3. 面向对象具有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象优势是明显.

面向对象和面向过程 不同之处

对于不同的语言来说: C是面向过程 C++ JAVA是面向对象 C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制) C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制. 面向对象和面向过程的区别 面向对象简单,面向过程对人员要求素质过高 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,最重