• 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:同时可以应用面向过程和面向对象方式编程
  • 相关阅读:
    java中的多线程
    PSCollectionView瀑布流实现
    直接拿来用!最火的iOS开源项目(一~三)
    iOS6新特征:UICollectionView介绍
    mac os颜色拾取工具/软件/器推荐
    ios/object-c中的UIColor一些比较偏的颜色展示/示例
    UIColor和 同 CIColor 与 CGColor 之间的联系、转换
    IOS开发自定义CheckBox控件
    IOS常用的第三方开发库
    JVM -XX: 参数介绍
  • 原文地址:https://www.cnblogs.com/River111/p/9545691.html
Copyright © 2020-2023  润新知