java是面向对象的还是面向环节的 (java是面向对象的吗)
本文目录导航:
java是面向对象的还是面向环节的?
JAVA是面向对象的。
两者的区别如下:面向环节就是剖析出处置疑问所须要的步骤,而后用函数把这些步骤一步一步成功,经常使用的时刻一个一个依次调用就可以了。
面向对象是把造成疑问事务分解成各个对象,建设对象的目标不是为了成功一个步骤,而是为了描叙某个事物在整个处置疑问的步骤中的行为。
例如五子棋,面向环节的设计思绪就是首先剖析疑问的步骤:1、开局游戏,2、黑子先走,3、绘制画面,4、判别胜负,5、轮到白子,6、绘制画面,7、判别胜负,8、前往步骤2,9、输入最后结果。
把下面每个步骤用区分的函数来成功,疑问就处置了。
而面向对象的设计则是从另外的思绪来处置疑问。
整个五子棋可以分为 1、黑色双方,这两方的行为是如出一辙的,2、棋盘系统,担任绘制画面,3、规定系统,担任判定诸如犯规、胜负等。
第一类对象(玩家对象)担任接受用户输入,并告知第二类对象(棋盘对象)棋子规划的变动,棋盘对象接纳到了棋子的i变动就要担任在屏幕下面显示出这种变动,同时应用第三类对象(规定系统)来对棋局启动判定。
可以显著地看出,面向对象是以配置来划分疑问,而不是步骤。
雷同是绘制棋局,这样的行为在面向环节的设计中扩散在了总多步骤中,很或许产生不同的绘制版本,由于理论设计人员会思考到实践状况启动各种各样的简化。
而面向对象的设计中,绘图只或许在棋盘对象中产生,从而保障了绘图的一致。
配置上的一致保障了面向对象设计的可裁减性。
比如我要添加悔棋的配置,假设要改变面向环节的设计,那么从输入到判别到显示这一连串的步骤都要改变,甚至步骤之间的循序都要启动大规模调整。
假设是面向对象的话,只用改变棋盘对象就行了,棋盘系统保留了黑色双方的棋谱,便捷回溯就可以了,而显示和规定判别则不用顾及,同时整个对对象配置的调用顺序都没有变动,改变只是部分的。
再比如我要把这个五子棋游戏改为围棋游戏,假设你是面向环节设计,那么五子棋的规定就散布在了你的程序的每一个角落,要改变还不如重写。
然而假设你现在就是面向对象的设计,那么你只用改变规定对象就可以了,五子棋和围棋的区别不就是规定吗?(当然棋盘大小如同也不一样,然而你会感觉这是一个难题吗?间接在棋盘对象中启动一番小改变就可以了。
)而下棋的大抵步骤从面向对象的角度来看没有任何变动。
当然,要到达改变只是部分的须要设计的人有足够的阅历,经常使用对象不能保障你的程序就是面向对象,初学者或许很蹩脚的程序员很或许以面向对象之虚而行面向环节之实,这样设计进去的所谓面向对象的程序很难有良好的可移植性和可裁减性。
面向对象和面向环节的区别
分类:电脑/网络 >> 程序设计 >> 其余编程言语 疑问形容: 刚刚学C++还搞不明白两者的区别望老鸟指教 解析: C是面向环节 C++、 JAVA是面向对象 面向对象和面向环节的区别一个广博,一个精湛. 总体而言,面向对象便捷,面向环节对人员要求素质过高 面向环节就是剖析出处置疑问所须要的步骤,而后用函数把这些步骤一步一步成功,经常使用的时刻一个一个依次调用就可以了。
面向对象是把造成疑问事务分解成各个对象,建设对象的目标不是为了成功一个步骤,而是为了描叙某个事物在整个处置疑问的步骤中的行为。
艾兰.库伯的《软件翻新之路》中提到: 面向环节和面向对象的区别并不像人们构想得那么大 面向对象的大部分思维在面向环节中也能表现 但面向环节最大的疑问(兴许是惟一后天的毛病)在于随着系统的收缩,面向环节将不可接待,最终造成系统的解体 面向对象的提出正是试图处置这一软件危机 目前看来,似乎有必定功效 但仍任重道远 --------------------------------------------------------------- 做一些对比来说吧: 剖析 基本构件 方法 工具 --------------------------------- 面向环节 基于算法 函数/环节 数据流图、伪代码... ... 面向对象 基于对象 类 UML建模... Rose,viso等 --------------------------------------------------------------- 其实我一直以为,不论是面向对象,还是面向环节,都表现了一种软件重用的思维! 只不过面向环节中重用的是环节和函数,然而面向对象重用的是类,一种将数据和处置数据的环节及函数封装在一同的实体,其实面向对象中的环节和函数和面向环节中的区分不是很大,所以数据流图和伪代码还是有用的。
面向对象一个很大的好处就是数据 和方法的封装,由此面向对象的三大个性获取施展
面向环节与面向对象的区别
面向环节与面向对象的区别有:思绪不同、特点不同、优势不同。
1、思绪不同:面向环节是间接将处置疑问的步骤剖析进去,而后用函数把步骤一步一步成功,而后再依次调用就可以了;而面向对象是将造成疑问的事物,分解成若干个对象,建设对象的目标不是为了成功一个步骤,而是为了形容某个事物在处置疑问环节中的行为。
2、特点不同:面向环节思维倾向于咱们做一件事的流程,首先做什么,其次做什么,最后做什么。
面向对象思维倾向于了解一团体,这团体的性情、专长是怎样样的,有没有遗传到什么才干,有没有家族病史。
3、优势不同:面向环节的优势是流程化使得编程义务明白,在开发之前基本思考了成功模式和最终结果,详细步骤清楚,便于节点剖析。
效率高,面向环节强调代码的短小精悍,擅长联合数据结构来开发高效率的程序。
面向对象的优势是易保养、易裁减、易复用,有封装、承袭、多态的个性、更容易设计出耦合的系统。
面向对象的个性:
1、封装性:封装性就是把属性和方法都放在一个类外面,而且还可以经过访问类的权限属性给区离开,愈加安保,不想要监禁的配置,间接搞成私无机制。
2、承袭性:承袭性就是把之前曾经成功好的代码或许方法经过承袭的方法拿上来经常使用,能节俭少量的代码量,合乎代码设计外面的承袭低劣代码个性。
3、多态性:由于可以承袭多个类,能够组分解多种个性,但多态的主要是笼罩,就是同一个方法可以用不同的模式去成功,展现出多态性。
以上内容参考网络百科-面向环节网络百科-面向对象