1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 面向对象和面向过程~~编程思想

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

时间:2019-03-08 06:48:22

相关推荐

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

对于编程思想来说,大意上可分为俩种,一种为面向对象,一种为面向过程。

面向过程,只追求运算逻辑、耦合度高(耦合度是指事物关联程度的紧密度)、扩展力差

而面向对象是追求的是模块之间的互相协作,耦合度低,扩展力强。

对于面向过程和面向对象的理解和差别是这么理解的(爬山):

——面向过程就像走山路爬山一样,必须一步一步走上去,途中没有其他方式上山。这种一条路走到黑的方式就是面向过程,他的逻辑性很强,一般的程序逻辑是没有问题的,但是假如出现问题,他的逻辑性就是被破坏,前段代码逻辑和后段代码逻辑会没有连接,导致整段程序会失效,最主要的是面向过程的编程思想,他的扩展力极差,没有办法将相对应有问题的代码及时更换。按照爬山的说法来说,就是上山的路坏了,他没有办法爬山了,而上山的路修补需要很长时间或者舍弃这条路也是有可能的。(比较原始)

——而面向对象对于爬山可以说是很丰富(多样)的,就比如同样是上山我们可以选择交通工具,坐汽车,坐缆车,骑自行车等都是可以的,他的选择方面是较多的,并且对于面向对象来说万物皆可为对象,我们可以定义人的属性,车的速度、颜色、类型等,这就是面向对象的好处,他的扩展力是很强的,他不会因为某一段代码出现了问题而造成整段代码会崩溃,因为基于面向对象的高扩展性,随时随地可以跟换错误的代码,那怕再复杂的代码逻辑相对于面向过程来说处理起来也相对容易

相对于例子爬山来讲,路坏了,我们可以坐缆车来达到爬山的目的。他的方法有很多种措施,而对于面向过程来说逻辑属性从建项目的那一刻就固定了,后面要做更改相对于面向对象的话会很难,毕竟面向过程的局限性就在那里。

面向对象和面向过程的优缺点:

面向过程的优点:

虽然面向过程他的局限较强,但是在一般并不复杂的业务逻辑时,他的前期工作是轻松的,只要有逻辑就能很快的做出项目来。

面向对象的缺点:

同样虽然面向对象他的扩展力极高,但是在前期的准备工作是非常复杂和缓慢的,在开发一个项目时,一个一个定义模块是非常消费时间的,前期投入较大,工程量大。

面向对象和面向过程的联系(自我认为):

虽然面向对象和面向过程有很大的区别,但是我认为面向过程是包含面向对象的。虽然面向对象是定义一个一个模块进行互相协作,但是我认为在互相协作的同时也是面向过程的同时,因为它具有逻辑性。所以面向对象走到最后也是面向过程,只不过这个面向过程具有面向对象的高扩展性。

当然,面向对象和面向过程只是一种编程的思维方式,我们不需要计较这两种编程思想哪个特殊。我们只要能理解了就好。

由于博主目前只会些jJAVA编程,所以下面用JAVA来表示一下面向对象和面向过程(也以爬山为例):

定义的类有:

ObjectOriented 面向对象类

ProcessOriented 面向过程类

People 人“类”

Car 车类

定义的属性有:

People 人“类”:String name; 名字

Car 车类:String brand;品牌int speed;速度String color;颜色People people;人名

———首先是面向对象类:

// 面向对象类public class ObjectOriented {public static void main(String[] args) {//创建对象people 引用 People类People people = new People();people.name = "李四";// 调用walk方法(走路的方法)people.walk();// 假如 walk方法失效 我们可以引用Car类的方法来上山 来取缔掉walk的方法 继续执行程序

// 若想使方法失效 注释27行 people.walk();就行// 创建对象 car 引用Car类Car car = new Car();// 定义Car类的中的属性car.brand = "宝马";// 定义Car类的中的属性car.speed = 120;// 定义Car类的中的属性car.color = "黑色";// 让原属于people的内存地址赋予了car.people// 相当于car.people = new People() 可以直接访问People类的属性car.people = people;// 将People类中的名字属性赋值car.people.name = "张三";car.drive();}}——————其次是人“类”:

// 人“类“public class People {// 名字String name;// 走路的方法public void walk(){// 输出打印到控制台System.out.println(name +"走路上山");}}

————再是车类:

// 车类public class Car {// 品牌String brand;// 速度int speed;// 颜色String color;// 人名People people;public void drive() {System.out.println(people.name + "坐" + brand + "的车" + "速度为:" + speed + "每小时公里" + "颜色为:" + color + "的车到山顶");}}

图解:

————最后是面向过程类:

// 面向过程类public class ProcessOriented {public static void main(String[] args) {// 定义一个名字变量String name = "王五";// 将name这个变量传入到WalkUpTheMountain方法中WalkUpTheMountain(name);}// 假如WalkUpTheMountain失效了 那么这个程序就会失去意义 王五再也不会去到山顶上// 定义一个走路上山的方法static void WalkUpTheMountain(String name){System.out.println(name +"走路上山到山顶");}}

图解:

~~对于面向过程的图解解释:

1.由于定义的方法是个传参的方法,所以定义了一个name变量并且赋予值为“王五”。

2.main方法调用WalkUpTheMountain方法。

对于博主自写 的这篇文章,觉得有些疏漏之处,也希望大神能指点一二。但是还是希望能够帮助一些初学者。

最后希望大家能够成功上岸。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。