• 逻辑串说面向对象知识点


    学面向对象也有一段时间了,再次回顾,整理所得,写成这篇,知识点只是大致说,细节每本关于面向对象的书都有,就不啰嗦占用时间和篇幅了.

    一  面向对象编程的由来:

      和面向对象编程相对应的是面向过程编程
        

        面向过程编程:就像造发动机一样,需要一步一步制造汽缸,活塞,喷油嘴等等,有先后顺序

        面向对象编程:没有先后顺序,将发动机的所有组件全部制造出来,放在一个仓库中.这个仓库就叫函数库.然后将所有组件组装成一个发动机.

        但是软件的包很不好管理,上世纪70年代,美国海军部提出面向对象编程.将汽缸看做是一个对象,把汽缸的所有属性和功能全部封装到一个文件当中,调用方法,更改属性,都可以

    调用这个封装好的文件.这样就最大程度上实现编程的模块化.

        软件没有实际物质,当函数库中的函数写出来以后,就不需要再重写,只需要调用就可以.所以软件开发只需要前期编辑成本,开发完成后就是零成本,这也是360免费,软件行业免

    费趋势的原因.

    二  模块化的目的:为了代码复用.

       代码复用的方式:组合和继承

        相对于继承,更多的用到组合.实例化和调用是组合最常用到的方式.能用组合尽量用组合.

        继承一般情况下是方法的功能不够强大,需要对方法进行覆写.所以尽量做到不覆写不继承.

        覆写需要遵守的规范:

            两个类必须有继承关系;

            不能有更小的权限;

            不能有更宽泛的异常;

            方法名,返回值,形参要一致;

            私有方法不能被覆写,即使覆写也会访问父类的;

            构造方法不能被继承,不能被覆写;

            静态方法不能被覆写;

            覆写是特指成员方法的覆写,和成员变量,静态变量,静态方法无关.
      

    这其中就涉及了对象的封装:其权限依次减小:public protected default private

    三  覆写的目的是增强父类方法的功能.方法的覆写和重复,重载的区别:

          重复:只要是方法名相同,参数列表相同,方法就是重复

          覆写:权限修饰符可以更大,方法名相同,参数列表相同

          重载:和覆写基本上没有关系,和继承也没有关系,权限修饰符相同,方法名相同,参数列表不同

     所以,方法最终的唯一识别方式就是方法名和参数列表.

     说到继承,必须要提的一个原则:

         里氏替换原则:能用父类的地方肯定能用子类.这就是通常所说的多态.

     变量声明的三个步骤:用类名声明数据类型开辟空间,给空间命名,把值放入空间.多态发生在赋值的地方.

     所以多态有四种形式:哪里用到变量,哪里就可以多态.

          直接实例化

          成员方法多态

          构造方法多态

          成员变量多态

    多态包含两种方式:向上转型和向下转型(用instanceof判断),主要应用在集合中.

    和其相似结构的是内部类.

    数据类型是一个类.所以数据类型出现的地方都可以替换成内部类.

    只有在声明变量的时候用到数据类型,所以有

        成员内部类----成员变量

        静态内部类----静态变量

        局部内部类----局部变量

        匿名内部类----形参变量

    下面附上几张大致的知识点框架图,仅供参考

                                  
                           

     

     

     

     

  • 相关阅读:
    欧拉函数的一个性质及其证明
    【机器人M号】题解
    【求和】题解
    uva11292贪心基础题目
    hdu 1009 贪心基础题
    近期计划,理清思路,大步向前
    hdu1712 分组背包
    TOJ3596 二维背包
    hdu1114 完全背包
    BestCoder Round #81 (div.2)1001
  • 原文地址:https://www.cnblogs.com/hongxinlaoking/p/4685756.html
Copyright © 2020-2023  润新知