面向对象学习笔记

面向过程

  1. 分析出解决问题的步骤,然后逐步实现。

        例如:婚礼筹办

        -- 发请柬(选照片、措词、制作)

        -- 宴席(场地、找厨师、准备桌椅餐具、计划菜品、购买食材)

        -- 婚礼仪式(定婚礼仪式流程、请主持人)

    2.公式:程序 = 算法 + 数据结构

    3.优点:所有环节、细节自己掌控。

    4.缺点:考虑所有细节,工作量大。

面向对象

  1. 找出解决问题的人,然后分配职责。

        例如:婚礼筹办

        -- 发请柬:找摄影公司(拍照片、制作请柬)

        -- 宴席:找酒店(告诉对方标准、数量、挑选菜品)

        -- 婚礼仪式:找婚庆公司(对方提供司仪、制定流程、提供设备、帮助执行)

    2.  公式:程序 = 对象 + 交互

    3.  优点

        (1)思想层面:

            -- 可模拟现实情景,更接近于人类思维

            -- 有利于梳理归纳、分析解决问题。

        (2)技术层面:

                -- 高复用:对重复的代码进行封装,提高开发效率。

          -- 高扩展:增加新的功能,不修改以前的代码。

          -- 高维护:代码可读性好,逻辑清晰,结构规整。

    4.  缺点:学习曲线陡峭。

为什么学习面向对象编程思想?

  • 面向过程
    优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源。
    缺点:不易维护、不易复用、不易扩展.
  • 面向对象
    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 .
    缺点:性能比面向过程差

面向对象主要概念:

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
面向对象学习笔记
版权声明:seasilo 发表于 2020-12-20 10:40:21。
转载请注明:面向对象学习笔记 | 海筒自习室

暂无评论

暂无评论...