C++编程思想 第一章对象导言

1.1抽象的过程

      为什么要抽象:提高开发效率,降低后期的修改维护成本,以人类的思维代替计算机思维去编程。

       samalltalk 的五个基本特征

          万物皆对象。                                                                    OOP

          程序就是一组对象,对象间通过消息相互通知做什么。   接口

          每个对象都有他自己的由其他对象构成的储存区。          继承 组合

          每个对象都有一个类型。                                                  这个类型就是未实例化的类。

          一个特定类型的所有对象都能接受相同的消息。              因为拥有相同的接口,或者通过创建对象,或者通过继承。

1.2对象都有一个接口

       类是描述了一类相同特征和相同行为的功能的对象。

       例如 

       Class Person

        {

                    Person

                    {

                                 特征:四肢五官,生下来就有的。

                     }

                     行为1()

                      {

                       }

                      行为2()

                      {

                      }                

                     listern(接口)// 语言等等

                     {

                                 if()

                                          //执行的行为1

                                 elseif

                                           //执行的行为2

 

                                  ...........................                                         

                      }

        };  

                Person   men

                Person  women

                这里面 实例的两个对象存在性别的差异,所以这里要 要用到多态(构造函数的参数类型不同 ,个数不同的同名函数)

                首先这个类存在的合理性,有着相同的特征 和相同的行为,就像人都有四肢五官(此为特征),能哭能笑,能打能闹(即行为)。

                 对于接口  可以体现在语言,文字,肢体语言,一个正常的非文盲都能接收到这个接口传递过来的信息。

       接口规定了我们能向特定的对象发出什么样的请求,就像人听不懂鸟语,猫叫一样。

 

1.3实现的隐藏

     做为一个程序的设计者,只会提供接口给客户程序员,不会提供内部的实现细节和数据。

     好处  作为客户程序员不需要了解内部细节,只需要知道接口如何应用即可,大大的降低客户程序员的开发难度,就像我们开发程序用C++,只要把iostream的头文件包含进来,就可用cout   cin   一样,我们不需要知道cout是如何实现只要知道如何用就可以向屏幕输出文字,如果把实现暴露给我们,我们不小心外部操作改变了它的实现部分,以后我们再用这些函数  就有可能出现不可意料的事情。

1.4实现的重用

     继承:不仅继承了父类的数据,也继承了父类的方法,如果想要子类有其他的特征,方法,在子类中添加相应的特征和方法就好,不必把父类实现的部分再写一遍。

1.5继承  接口重用

     缺点是  如果父类做了修改,子类的行为 ,特征也发生了变化。

1.6  具有多态的可互换对象

       覆盖和替换

       父类和子类中都存在相同的行为, 子类实例化的对象调用这个行为的过程实际是调用了子类的行为,这个过程是替换。

       如果父类声明这个行为是虚函数 ,子类实例化的对象调用这个行为的过程实际是调用了子类的行为,这个过程是覆盖。

1.7对象的创建和销毁

         第一种实是栈上创建对象 ,编译器根据程序自动创建和销毁对象

         第二种是在堆上创建对象,new 出来的对象 编译器不知道什么时候销毁,所以要程序眼显式的用delete 去销毁这个对象。

 

    

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值