C++基础(2)——面向对象编程(OOP)【对象和类】

1.  特性:抽象;封装和数据隐藏;多态,继承;代码的可重用性。

2.  采用OOP方法时,首先从用户的角度考虑对象——描述对象所需的数据以及描述用户与数据交互所需的操作。完成对接口的描述后,需要确定如何实现接口和数据存储。最后,使用新的设计方案创建出程序。

3.  指定基本类型完成了三项工作:

l  决定数据对象需要的内存数量

l  决定如何解释内存中的位

l  决定可使用数据对象执行的操作或方法

4.  类规范由两个部分组成:(简单的说,类声明提供了类的蓝图,方法定义提供了细节)

l  类声明:以数据成员的方式描述数据部分,以成员函数(被称为方法)的方式描述公有接口。

l  类方法定义:描述如何实现类成员函数。

5.  关键字privateprotectedpublic描述了对类成员的访问控制。使用类对象的程序都可以直接访问公有部分,但只能通过公有成员函数来访问对象的私有成员。防止程序直接访问数据被称为数据隐藏。

6.  类设计尽可能将公有接口与实现细节分开。公有接口表示设计的抽象组建。将实现细节放在一起并将他们与抽象分开被称为封装。

7.  成员函数两个特殊特征:

l  定义成员函数时,使用作用域解析运算符(::)来标识函数所属的类;

l  类方法可以访问类的private组件。

8.  所创建的每个新对象都有自己的存储空间,用于存储其内部变量和类成员;但同一个类的所有对象共享同一组类方法。

9.  指定类设计的第一步是提供类声明。类声明类似结构声明,可以包括数据成员和函数成员。声明包括私有部分(在其中声明的成员只能通过成员函数进行访问)和公有部分(其中声明的成员可被使用类对象的程序直接访问)。通常,数据成员被放在私有部分中,成员函数被放在公有部分中,典型的类声明格式如下:

class classname

{

  private

   data memberdeclaration

  public

   memberfunction prototypes

};

公有部分的内容构成了设计的抽象部分——公有接口。将数据封装到私有部分中可以保护数据的完整性,这被称为数据隐藏。

10. 默认构造函数是在未提供显式初始值时,用来创建对象的构造函数。定义默认构造函数的方式有两种:

l  一种是给已有构造函数的所有参数提供默认值。

l  另一种方式是通过函数重载来定义另一个构造函数——一个没有参数的构造函数。

创建默认构造函数后,便可以声明对象变量,而不对它们进行显式初始化。

构造函数是一种特殊的类成员函数,在创建类对象时被调用。构造函数的名称和类名相同,但通过函数重载,可以创建多个同名的构造函数,条件是每个函数的特征标(参数列表)都不同。另外,构造函数没有声明类型。通常,构造函数用于初始化类对象的成员,初始化应与构造函数的参数列表匹配。

//Bozo类的构造函数的原型如下
Bozo(const char * fname, const char * lname);
//可以用它来初始化新对象
Bozo bozetta = bozo(“Bozetta”,”Biggens”);
Bozo fufu(“fufu”,”OWweewb”);
Bozo *pc = new Bozo(“Popo”,”Le Peu”);


11. 用构造函数创建对象后,程序负责跟踪该对象,直到其过期为止。对象过期时,程序将自动调用一个特殊的成员函数——析构函数。析构函数的名称:在类名前加上~

12. this指针指向用来调用成员函数的对象(this被作为隐藏参数传递给方法)。每个成员函数都有一个this指针,this指针指向调用对象。

13. 总结:

l  面向对象编程强调的是程序如何表示数据。使用OOP方法解决编程问题的第一步是根据它与程序之间的接口来描述数据,从而指定如何使用数据。然后设计一个类来实现该接口。一般来说,私有数据成员存储信息,公有成员函数(方法)提供访问数据的唯一途径。类将数据和方法组合成一个单元,其私有性实现数据隐藏。

l  通常,将类声明分成两部分组成,这两部分通常保存在不同的文件中,类声明[.h](包括由函数原型表示的方法)应放到头文件中。定义成员函数的源代码放在方法文件中[.cpp]

l  类是用户定义的类型,对象是类的实例。这意味着对象是这种类型的变量。

l  每个对象都存储自己的数据,而共享类方法。


猜你喜欢

转载自blog.csdn.net/nininicrystal/article/details/80294346