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

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

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

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

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

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

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

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

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

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

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

         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  每个对象都存储自己的数据,而共享类方法。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值