zoukankan      html  css  js  c++  java
  • java学习心得-面向对象与面向过程

      我相信在各位学习的过程中,都会从书上看到面向对面和面向过程的定义,但是如何理解它们之间的区别和转换成自己的思想并运用在软件爱国过程中,我想很多初学者都不能很好的把握。下面我就对面向对象和面向过程做一个简单的分析。

      面向过程,顾名思义,其中心意义在于“过程”二字,比如你要吃饭,那么首先是要选地,播种,施肥,成熟,收获,煮饭,然后才能吃饭,那么面向过程就是从开始到结束,分析出解决问题的需要的每一个步骤,然后用函数将这些步骤一个一个实现,使用的时候一个一个一次调用就行了。

      面向对象,同样的,你去饭店吃饭的时候,只需要对服务员说一句你要吃饭就行了,你不需要关心饭是怎么来的,这就是面向对象。那么面向对象就是把组成问题事务分解成一个个对象,建立对象不是为了解决一个步骤,而是用来描述某个事务在解决问题步骤中的行为。面向对象是以功能来划分问题,而不是步骤。

      以上的解释来源于书上,对于初学者而言,这样的描述过于抽象,不能很好的理解。下面我举个具体的例子来说明。

      从书面上来说,可能面向过程更好理解,但是其实面向对象更符合人们的思考习惯。比如外面去商场买衣服,那么商场的功能就是提供衣服,你不需要关心衣服是怎么来的,你只需要向商场提出你要买衣服的要求就可以。就那贪吃蛇这个游戏而言,对于面向过程:1、吃一个;2、绘制画面;3判断是否死亡,就这样依次调用函数,一个一个步骤进行。

      而对于面向对象,建立三个对象:1、蛇;2、画面系统;3、规则系统。首先进行操作,然后将操作后的结果提交至画面系统进行画面绘制,绘制之后的结果提交至规则系统判断是否死亡。这样一招功能来划分问题。

      从上面的解释来看,面向对象和面向过程依然难以区分,但是如果我要返回上一步,那么对于面向过程而言,从初始状态到判断是否死亡到现实画面可能都需要改动。而对于面向对象则只需要重新设计画面系统,在里面保存上一步的坐标即可,这里不需要涉及到规则系统和其他操作。

      面向对象的功能划分保证了面向对象的可扩展性。比如我需要为贪吃蛇重新改写一套规则,在面向过程中,规则已经渗透到整个程序的各个角落,改写不如重写。那么在面向对象中,则只需要重新设计规则系统即可。

      其实面向对象和面向过程都强调代买重用,用了对象不代表你的程序就是面向对象,要做到局部改动需要足够的经验,很多人在用java编程时依旧是面向过程的思想(尽管在程序中使用的类和对象),这样的程序设计依然缺乏重用性和可移植性。

  • 相关阅读:
    万能的everything彻底解决mysql问题
    乱码问题
    机器学习学习规划
    NG机器学习笔记
    书籍与博客
    技术规划
    反置数
    多个接口出现同名函数的处理-转
    接口-imploements-委托
    接口使用中,对象生命周期管理-转
  • 原文地址:https://www.cnblogs.com/CodeMeteor/p/3633869.html
Copyright © 2011-2022 走看看