一,为什么学习C++
C语言有一个优点,既它的速度可以很快。写出来的程序可以很精练,简单,小巧,
不用为了解决某个问题环绕太平洋一大圈。但如果将C和C++相比较,C++就经常会为了解决某个问题绕一大圈,所以代码量相对较大,并且里面有一些不是必须的代码。
但C++有个绝对的优势,就是针对不同的对象去做实例化,这就是所谓的面向对象思想
二,面向对象
在面向对象的思想中,任何事物都可以被看做一个对象。一个再复杂的模型结构都
是由千千万万个对象组成的。这是根本的思想。它们彼此之间互相联系,组合,最终形成了地球。而对于每个对象,抽象起来最终可以分为两个要素:属性和行为。
在面向对象编程中,程序员不再是面对一个个函数和变量,而是要放眼大局,面对一个个对象来看待问题。 每个对象都是一个完整的独立的个体,它是由相关的属性和行为组合,与外界分隔。 面向对象是当前软件开发方法的主流,其概念和应用早已超越程序设计和软件开发本身而扩展到更加宽广的范围。
1、基本概念
对象
对象是由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)组成的封装体,描述客观事物的一个实体,是构成系统的基本单元。
类
类是对一组有相同数据和相同操作的对象的定义,是对象的模板,其包含的方法和数据描述一组对象的共同行为和属性。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其他类,形成类层次结构。
2、类与对象的区别
(1),类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。
(2),类是一组具有相同属性和行为的对象的抽象。我们可以将类看做是创建对象蓝图,对象根据这个蓝图去具体实现某个东西。
三,基本特征
1.封装
封装意味着把对象的属性和方法结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。封装是面对对象思想描述的基础的,从此程序员面对的就不再是许多复杂的函数和过程实现,而是少数具有行为能力的个体实例。
2.抽象
抽象的过程是对具体问题进行概括的过程,是对一类公共问题进行统一描述的过程。是为了使某些必要的信息得以顺利的交流,设计者必须制定一个抽象,就如同一个协议,一个得到所有参与活动的有效个体支持的协议。
3.继承
子类对象拥有与其基类相同的全部属性和方法,称为继承。
4.多态
多态是指在基类中定义的属性和行为被子类继承,可以具有不同的数据类型或者表现行为等特性。
例 加入动物是基类,它的子类有老虎,兔子.....那么作为动物有一个行为定义为Move(),那么这些子类继承下来后根据自己的特性采取不同个性的Move()方式。