1.浅谈面向对象思想

  1. 知识回顾
    1. 在java基础中我们学习的只是java的皮毛,但是也是最基础,最重要的了
    2. 路漫漫其修远兮,我等还需继续努力学习新的知识.
    3. 前面肯定见过new StringBuffer("");new int[]….,当时没有解释,是因为这不是一,两句话能说清楚的,new是什么呢?且听我后面java高级章节中细细道来.
  2. 什么是思想
    1. 我的理解
      1) 也称为观念(心里的打算):人如此多,可见思想是如此复杂,只能从相同点浅谈了
      2) 思想是不分好坏,但结果却分利弊
      3) 思想具有时段性,事务的变化会影响思想的变化(两者是相互的,时间是见证者)
    2. 百度百科的解释(我表示看不懂,咬文嚼字,)
      1) 思的定义
      1. 意识运动的引起是为思,思是意识的顺向运动
      1. 想的定义
        1. 目的性的意识行为是为想。想是意识的逆向运动
      2. 思想
        1. 运动的意识”称为思想。思想是意识的向导发生
  3. 思想的作用 a. 影响人的行为 b. 影响事务的发展 c. 举例说明(不扯了,太多就偏题了)
    1. 毛主席思想(我晕+_+:毛zhedong内容违规)
    1. 思想内容
    1. 农忖包围坡市的革命道路
    2. 统一战线
    2. 分析
    1. 对毛主席的影响:个人价值的实现,伟大领袖毛主席,指引我们向前进
    2. 对当时时代的影响:推翻资本主义,建立新中国,进入社会主义新时代
    2. 一国两治思想….太多了
  4. 我们应该拥有什么样的思想(以下虽不一定能使你幸福,但是必不会让你痛苦)
    1. 对生活:积极乐观
    2. 对学习:勤奋进取
    3. 对亲人:感恩珍惜
      坚持如上思想,个人行为便是有意义的,事务的发展便是向上的
  5. 理解面向对象思想
    1. 什么是"面向对象思想"((Object-Oriented Programming)
      1. 将事务转换成对象后,思考解决问题的方法
      2. 面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。
      3. 浪漫式恋爱:你笑时像天上的太阳,温暖我心;你哭时像天上的乌云,忧郁我神;我的世界全是你;我的眼里只有你.我们在一起吧!
    2. 思想的起源(辅助理解此思想)
      1. 面向过程编程采取的是时间换空间的策略,因为在早期计算机配置低,内存小,如何节省内存则成了首要任务,哪怕是运行的时间更长。随着硬件技术的发展,硬件不再成为瓶颈,相反更好的模拟现实世界、系统的可维护性等问题凸显出来,于是面向对象设计应运而生。
      2. 当下:应用在PC机上的一般应用系统,由于不太需要考虑硬件的限制,而系统的可维护性等方面却要求很高,一般采用面向对象方式;
      3. 而在内存限制有所要求的嵌入式系统,则大多采用面向过程方式进行设计编程。
    3. 扩展理解"面向过程"思想(Procedure Oriented)
      1. 是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。
      2. 面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可
      3. 直白式恋爱:你有车不?你有房不?有存款有6位数不?没实现,别来找我!
    4. 举例理解
      1. 如果要开发一款"五字棋游戏",用这两种思想编程是如何的呢?
        1. 面向过程
          1、开始游戏,
          2、黑子先走,
          3、绘制画面,
          4、判断输赢,
          5、轮到白子,
          6、绘制画面,
          7、判断输赢,
          8、返回步骤2,
          9、输出最后结果。
          把上面每个步骤用分别的函数来实现,问题就解决了。
        2. 面向对象
          1. 划分功能
            1、黑白双方,这两方的行为是一模一样的,
            2、棋盘系统,负责绘制画面,
            3、规则系统,负责判定诸如犯规、输赢等。
          2. 划分对象
            1. 第一类对象:玩家对象负责接受用户输入,,并告知第二类对象(棋盘对象)棋子布局的变化
            2. 第二类对象:棋盘对象,接收到了棋子的变化就要负责在屏幕上面显示出这种变化
            3. 第三类对象:规则系统对象,对棋局进行判定
        3. 如果需要加入"悔棋"功能怎么办呢?
          1. 面向过程
            1. 从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整
          2. 面向对象
            1. 只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的
      2. 做一个项目
        1. 面向过程
          1. 一件事情按照一定的顺序,从头到尾一步一步地做下去,先做什么,后做什么,一直到结束
          2. 这种思想比较单打独斗,其实这也是一个人做好事的方法
        2. 面向对象
          1. 把一个项目、一件事情分成更小的项目,或者说分成一个个更小的部分,每一部分负责什么方面的功能,最后再由这些部分组合而成为一个整体
          2. 这种思想比较适合多人的分工合作,就像一个大的机关,分成各个部门,每个部门分别负责某样职能,各个部门可以充分发挥自己的特色,只要符合一定前提就行了
      3. 总结
        1) 面向过程
        1. 解决问题虽简单明了但固守死板
        2. 适合解决小问题
        2) 面向对象
        1. 解决问题虽思考颇多但易于扩展
        2. 适合解决复杂性问题
    5. 深入理解
      1. 面向过程
        1) 过程化程序设计先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算
        2) 面向过程编程的程序员,习惯于建立数据结构存放数据并定义方法(函数)来操作数据
        3) 不是在写函数,就是在思考如何写好函数
      2. 面向对象
        1) 面向对象编程的程序员则构造一个对象模型,将数据与方法组织在一起
        2) 它描述的是对象之间的相互作用。
        3) 以类的方式封装代码,以对象的方式组织代码
    6. 面向对象与面向过程的联系与区别
      1. 区别
        1) 面向过程与面向对象明显的不同就是:它没封装、继承、多态,类,对象这些概念
      2. 联系(前者包含后者)
        面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。对比面向过程,面向对象的方法主要是把事物给对象化,对象包括属性与行为。当程序规模不是很大时,面向过程的方法还会体现出一种优势。因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。比如拿学生早上起来这件事说明面向过程,粗略的可以将过程拟为:
        (1)起床
        (2)穿衣
        (3)洗脸刷牙
        (4)去学校
        而这4步就是一步一步地完成,它的顺序很重要,你只需要一个一个地实现就行了。而如果是用面向对象的方法的话,可能就只抽象出一个学生的类,它包括这四个方法,但是具体的顺序就不一定按照原来的顺序。
  6. 面向对象思想的好处
    1. 易扩展维护
    2. 符合人思考问题的方式:易开发(分工合作)
  7. 编程语言用了那些思想
    1. 面向对象(主流的都是,或将来会变成)
      1. java,c#,python
    2. 面向过程
      1. 纯面向过程:函数是全部:一个main函数中调用 一个个子函数。程序的运行主要是函数写得好不好,再者就是函数和循环的复杂度。
    3. 都支持
      1. PHP:同时可以应用面向过程和面向对象方式编程

猜你喜欢

转载自www.cnblogs.com/River111/p/9545691.html