《面向对象程序设计——C++语言描述》学习笔记(一)
第一章 面向对象编程编程
1.1 面向过程和面向对象的编程风格后端
- 面向过程的编程风格:程序是由模块构成的,一个模块就是一个过程,C++是C语言发展而来的,所以C++在某种意义上也是面向过程语言。同时面向过程语言是自顶向下设计的,也就是将一个大问题不断分解成小问题,而后每一个小问题就是一个过程,或者说函数。所以这样的编程风格有一个问题就是不方便后期维护,一旦需求有变或者串联改变时,修改维护的工程量比较大。
- 面向对象的编程风格:面向对象中构成模块的基本单元是类,不是过程。类能够理解为是对象的集合。一个类里面包含两个属性,分别是静态属性和动态属性(我的通俗的分类,方便记忆)。静态属性就是咱们说的属性或者变量,动态属性是指方法或者过程或者操做。面向对象的编程中如何设计类是重点,也是基础。同时,类与类之间的关系、类与对象之间的关系也是面向对象编程的重要内容,咱们统称为关系。
1.2类和抽象数据类型(有待后续理解)服务器
- 信息隐藏:C++中由接口和实现两个概念,接口是公有(public)的,也就是用户可见的,实现是私有的(private),也就是用户不可见的。 这样作的好处是能够对部分信息进行私有隐藏,修改的话不影响公有接口的使用,这样能够保证维护时不影响用户的使用。
- 封装:把数据和处理数据的过程封装在一块儿就造成了类,说白了就是将这些信息封装在一块儿,方便对象使用。
- 抽象数据类型:当一个数据类型将接口暴露出来,将实现隐藏起来,咱们就称这类数据类型为抽象数据类型。计算机中抽象的概念很是重要,这样的思想很是有利于面向对象编程。
1.3客户/服务器模式和消息传递函数
- 客户/服务器模式:面向对象程序中,类和对象能够理解为服务器,而使用类和对象的模块理解为客户。
- 消息传递:通常来讲,使用类或者对象的模块在调用函数的时候采用的就是消息传递的机制,经过这个机制来获取客户所需的服务。而具体这个服务是如何实现的,客户是不关心的,它关心的只是它要的服务是否实现。
1.4继承和多态spa
- 继承:继承的层次是由一些具备父子关系的类组成。所谓的继承,是子类继承父类全部的特色,包括父类的全部变量和操做,同时在此基础上,子类能够拥有一些只属于本身的变量和操做。同时在C++中支持多重继承,也就是说一个子类能够由多个父类。
- 多态:多个不一样的类中能够拥有相同的函数,好比window类中有display函数,messagewindow类中也能够有display函数,而使用的时候直接用w.display()就能够实现对应的功能,其中w能够是window或者messagewindow。判读w是指向哪一个对象不是用户的事情,而是系统来完成的。
1.5接口和组件设计
- 接口:类暴露出来的部分称为接口,是用户能够进行调用的,经过接口能够实现对应的功能,而接口里面的东西是隐藏的,也是用户不须要关心的。
- 组件:组件是接口的后端服务者。软件组件跟硬件组件相似,软件中的容器跟硬件中的总线相似。组件和容器的有机结合构成了程序。
欢迎关注本站公众号,获取更多信息