面向对象和面向过程的编程方式的理解

  1. 面向对象和面向过程的区别?

    如果说面向对象和面向过程的具体区别,最深入的地方应该是去看设计模式,推荐大话设计模式那本书,讲的比较好。本人只不过简单叙述下,重点是如何进行面向对象和面向过程的编程,只有会编程了,才能真正懂得面向对象和面向过程的区别。否则都是纸上谈兵。

    面向过程:是以计算机线性思维的方式进行编程。一步一个脚印的执行。本身也没有问题,但是如果遇到需求多变的情况,或者功能的添加和删除,将极其影响原来的程序代码,必须要重写或者修改,或者重新组织原来的代码。

    面向对象:在对需求多变的时候,不影响整体程序的代码,必要时,可以扩增,不会影响程序的主要逻辑,尤其后期加上优秀的设计模式,将大大适应需求多变,易扩展等大量问题。因此广受欢迎,以面向对象语言层出不穷,经典的有C++,JAVA,以及现在比较热门的Python,甚至大数据编程还有Scala编程(结合了函数式编程和面向对象编程)。

  2. 面向对象如何编程,面向过程如何编程?

    具体的举个小例子,约瑟夫问题(一群小孩围成一个环,对其进行编号,然后到几了就删除了这个小孩,然后从下一个小孩从1进行编号,不断地删除)
    面向过程如何编程:首先写好孩子的数据结构,孩子本身的信息+孩子的下一个指针(该指针存储了下一个结点的地址)。另外结点写好了,在讲这些有关系的结点进行组装起来成为一个没有头结点的循环链表,自然而然就有buildCycLink(int len,头指针)方法 。然后再写一个printLink(头指针)方法,最后在main函数中一个一个调用方法,很线性的思维方式。(本例有个重点,就是结点和结点之间有关系,你必须要组装,例如构建二叉树,也是如此,多个结点需要组装成二叉树。)

    面向对象如何进行编程:首先造出一个孩子类(孩子本身的信息,+指向下一个结点(引用)),然后组装这些结点之间的关系,那么自然而然拥有这些结点数据信息。(面向对象一个很重要的思想就是谁拥有数据信息,就拥有可以操作这些数据信息的方法)。所以在造出个CycLink类,这个类里面包含了数据结点,以及结点个数,以及构建结点关系的方法和显示结点信息的方法。

    注意事项:c++中是用指针表示结点之间的关系:p->next=q; (表示的p的下个结点是q)。p=q,(表示的是p和q指向的同一个结点)。Java中:对象p.next属性=对象q;(表

示的是对象p的下一个对象是q)对象p=对象q(表示的两者引用的是同一个东西)。

3.面向对象编程的总体思路

首先是抽象:将共同的事物进行抽象成类,或者数据结构,这点和数据结构结点的的抽象是一样的。

以KNN算法为例,很多点,需要抽象成点类,点和点需要计算距离,这时候可以抽象成距离类。未知分类点和训练集点,进行校验,那么面向对象就需要拥有这些训练集数据和未知点数据,那么自然而然就拥有了操作这些数据的方法,欧式计算,mostOfType()等等方法。这样就可以写成一个类,别的类只需要负责调用这个类实现功能。

4.面向对象的MVC模式启发

界面层:干界面层的事情。

模型层:负责具体业务逻辑

控制层:负责控制判断,跳转。

每一层:拥有每一层的数据,自然而然的就拥有操作这些数据的方法,其他层负责调用就好了。

时间: 2024-10-11 15:08:09

面向对象和面向过程的编程方式的理解的相关文章

面向对象的编程和面向过程的编程有什么区别

C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数.程序运行的顺序都是程序员决定好了的.它是我学的第一种程序语言. C++是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计. 不同点:1.编程模型 所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕&

编程思想:面向对象和面向过程

感觉写的不够深入,不过基本可行,转载自:http://www.cnblogs.com/BeiGuo-FengGuang/p/5935763.html 何谓面向对象?何谓面向过程?对于这编程界的两大思想,一直贯穿在我们学习和工作当中.我们知道面向过程和面向对象,但要让我们讲出来个所以然,又感觉是不知从何说起,最后可能也只会说出一句就是那样啦,你知道啦.而这种茫然,其实就是对这两大编程思想的迷糊之处.本文通过学生到校报道注册的实例,阐述了面向过程和面向对象两大思想.希望能对你的学习和工作有所帮助.

(一)Python入门-6面向对象编程:01面向对象和面向过程区别-对象的进化

面向对象: 面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型 软件设计而来的.面向对象编程使程序的扩展性更强.可读性更好,使的编程可以像搭 积木一样简单. 面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式 更加接近人的思维,从而大大提高了编程的效率. Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向 对象的基本功能,例如:继承.多态.封装等. Python中,一切皆对象.我们在前面学习的数据类型

面向对象与面向过程编程

两种思想的对比: 面向过程是具体的东西,而且面向过程是面向对象的基础.面向对象可以说是面向过程的抽象,比如汽车有开车,加减速和刹车,关于汽车的操作有好多,每一个都需要一个具体的过程来实现,把这些过程抽象的总结起来就可以形成一个类,这个类包括的汽车所有的东西,所有的操作. 总结来说就是,面向过程是一种基础的方法,它考虑的是实际的实现,一般情况下,面向过程是自顶向下逐步求精,其最重要的是模块化的思想方法.因此在模块化编程的时候才会有"低耦合,高内聚"的思想来提高效率.面向对象的方法主要是把

面向对象编程(一)——面向对象和面向过程

面向对象(Object Oriented),通过对象来封装我们的数据.(组织代码,封装数据) 面向对象和面向过程: 面向过程:procedure oriented programming,POP 面向对象:object oriented programming,OOP 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了. 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中

【C++系列小结】面向过程的编程风格

前言 编程语言有面向过程和面向对象之分,因此编程风格也有所谓的面向过程的编程和面向对象的编程,而且语言的性质不会限制编程的风格. 这里主要说一下面向过程的编程. "面向过程"(Procedure Oriented)是一种以过程为中心的编程思想. C语言是面向过程的编程语言,但是依然可以写出面向对象的程序,同样C++也当然可以写出面向过程的程序咯. 如果我们把所有的程序代码都写在一个main函数里面,那么这个程序显然会显得很不和谐吧.理想一点的做法是我们把一些看起来和main函数逻辑上关

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

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

大话JS面向对象之扩展篇 面向对象与面向过程之间的博弈论(OO Vs 过程)------(一个简单的实例引发的沉思)

一,总体概要 1,笔者浅谈 我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭(面向对象式编程因为引入了类.对象.实例等概念,非常贴合人类对于世间万物的认知方式和思考方式.对于复杂的事物,人类是如何去认识.归纳.总结的?面向对象式编程就是在努力回答这个问题,而答案的核心就是两个字:抽象.所以面向对象式编程特别适合处理业务逻辑,因此被广泛应用于目前的软件开发当中.因为我们开发软件就是为了解决问题,面向对象式编程符合人类对于“问题”的认知方式),因为我早

面向对象和面向过程思想 oc

面向对象和面向过程只是两种思想:都能解决问题: 面向过程关注的是解决问题的步骤:例如听歌—打开电脑--打开播放歌曲--关闭电脑 面向对象的思想的:思考的不是步骤,解决这个问题需要用到多少个对象:例如听歌:找对象:电脑这个对象:因为电脑这个对象有开机,播放歌曲,关机这些功能: 面向对象关注的是对象:不是关注步骤:就是干任何事情需要用到哪些对象: OOP面向对象编程object oriented programming: OO面向对象:object oriented: 什么东西都是对象:你要解决面向