C++里的面向对象是什么意思?


C++里的面向对象是什么意思?


【C++里的面向对象是什么意思?】对象就像是我们生活中的每个实体(如人、钢笔等等)对象的抽象叫做类 , 打个比方说 , 人是一个类 , 你我是这个类的实体对象 。对象有数据 , 就像我们的身高、体重 , 就是类里的各种变量 。对象有动作 , 比如我们可以吃饭、行走 , 就是类里的成员函数 。对象的数据多是private(私有)的 , 通过成员函数(多为public)来访问他 。这就是类对数据的封装性 。人还分为男人和女人 , 然后再根据年龄分为老人、小孩等 。但他们都具有“人”的特性、这就叫做继承 。对同一件事情 , 不同的人有不同的反映 , 这就叫做多态 。比如一个学校要开学了 , 不同的部门会做不同的事 。多态还体现在重用性上 , 比如函数、运算符的重载 , 实现“一物多用” 。面向对象的作用很大 , 在以后的实践中会慢慢感受到 。因为他来自我们的现实生活中 , 所以比较自然、顺手 。像C语言如果用来开发大型软件的话就会很手足无措 , 因为各种函数能够把你烦死 。----------------------------------------------------------面向对象的好处使用面向对象思想进行开发有以下优点:1、易维护采用面向对象思想设计的结构 , 可读性高 , 由于继承的存在 , 即使改变需求 , 那么维护也只是在局部模块 , 所以维护起来是非常方便和较低成本的 。2、质量高在设计时 , 可重用现有的 , 在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量 。3、效率高在软件开发时 , 根据设计的需要对现实世界的事物进行抽象 , 产生类 。使用这样的方法解决问题 , 接近于日常生活和自然的思考方式 , 势必提高软件开发的效率和质量 。4、易扩展由于继承、封装、多态的特性 , 自然设计出高内聚、低耦合的系统结构 , 使得系统更灵活、更容易扩展 , 而且成本较低 。面向对象设计的原则 SRP 单一职责原则 就一个类而言 , 应该仅有一个引起它变化的原因 。OCP 开放————封闭原则 软件实体(类、模块、函数等)应该是可以开展的 , 但是不可修改 。LSP Liskov 替换原则 子类型必须能够替换掉它们的父类型 。DIP 依赖倒置原则 抽象不应该依赖于细节 。细节应该依赖于抽象 。ISP 接口隔离原则 不应该强迫客户依赖于它们不用的方法 。接口属于客户 , 不属于它所在的类层次结构 。REP 重用发布等价原则 重用的粒度就是发布的粒度 CCP 共同封闭原则 包中的所有类对于同一类性质的变化应该是共同封闭的 。一个变化若对一个包产生影响 , 则将对该包中的所有类产生影响 , 而对于其他的包不造成任何影响 。CRP 共同重用原则 一个包中的所有类应该是共同重用的 。如果重用了包中的一个类 , 那么就要重用包中的所有类 。ADP 无环依赖原则 在包的依赖关系图中不允许存在环 。SDP 稳定依赖原则 朝着稳定的方向进行依赖 SAP 稳定抽象原则 包的抽象程度应该和其稳定程度一致 。-------------------------------------------------------某些问题和解决方法 , 必须使用面向对象技术 。使用面对对象技术可以大大简化开发 。另一些则不用 。比如:开发操作系统内核就可以不用面对对象 , 所以 , 无论Windows,Linux,Uinx, MAC 大部分都是使用C开发的 , 而不用C++.但是开发一个客户交互并能够组件化易扩充的软件(比如一个CAD软件) , 就必须使用面对对象 。所以这方面的软件都是采用C++开发 。再举个例子 , Windows系统的API函数有几千个 , 发出的消息也有几千个.如果使用过程语言比如C开发 , 难度和代码量都很惊人 , 比如要在一个大函数里循环处理消息 。如果用面向对象的方法 , 就可以封装这些函数和消息 。大大减少代码量和开发难度 。再有 , 基本上各种快速构建系统的RAD工具 , VB,Delphi,都是采用面向对象的方法实现的 。(注:VB不算面向对象 , 只能算基于对象 , 因为他没有继承)使用这些工具 , 你就在应用面向对象 。----------------------------------------------但是 , 在编写小程序时 , 面向对象就显得太烦碎了;如:class a{public: int a=20; int b=10;}a a1,a2;int c=a1.a-a2.b; 。。。所以要“量体裁衣” , 选择适合的方式 。另外面向对象(oop)是一种方法 , 思想 , 而不是技术 。

猜你喜欢