1、概念

对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

对象的载体:人、电脑、风扇、桌子、游戏、旅游、棋盘系统.....对象的描述:特征/属性--变量--数据成员          功能/方法--函数--函数成员

类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是 类,类的具体化(实例化)就是对象,类实际上就是一种数据类型 。

女朋友1  ----有属性(身高、体重、姓名..) 有行为(吃饭、睡觉、打游戏、生气.)女朋友2  ----有属性(身高、体重、姓名..) 有行为(吃饭、睡觉、打游戏、生气.)女朋友3  ----有属性(身高、体重、姓名..) 有行为(吃饭、睡觉、打游戏、生气.)------女朋友1、2、3 是具体的事物(人),也就是对象------提炼出共同点,抽象出一个类:GirlFriend类

2、设计和使用一个类

1) 找出对象  归类  ---时间类

2) 抽象:(提炼共同点)

   特征/属性:时 分 秒

   功能/方法:显示时间   设置时间

3) 封装

把对象的属性和服务结合成一个独立的系统单元。尽可能屏蔽对象的内部细节。对外形成一个边界(或者说一道屏障), 只保留有限的对外接口使之与外部发生联系。

4) 实例化对象

定义一个类的对象,通过对象调用类中的成员

3、类的简单设计格式

class 类名{     类的特征(属性) 成员变量     类的行为(功能) 成员方法, 函数 };

比如:设计一个女朋友类

class GirlFriend{    //属性--数据成员    char name[256];    int age;    float score;    //行为--函数成员    void print(){        cout<<name<<age<<score<<endl;    }    int playGame(){        cout<<"playGame"<<endl;    }    int study(){        cout<<"study"<<endl;    }};

4、结构体与类

C语言的结构体

C++的类

struct  Student{

   char name[256];

    int age;

    float score;

   //只能定义函数指针

  void (*playGame)(void);

  void (*eat)(void);

  void (*study)(void);

};

class  Student{

  //属性

   char name[256];

    int age;

    float score;

   //行为---函数

  void playGame(void)

  {

  }

  void eat(void)

 {

 }

  void study(void)

  {

  }

};

成员默认公有--对外开放

struct Student Jack;

Jack.age = 23;//正确

成员默认私有--对外隐藏

Student Jack;

Jack.age = 23;//错误

5、类的成员权限

成员的性质由关键字public、protected、private 决定 ,如果在进行类的声明时不写上面这些关键字,默认都是私有的。

public     公有         公有段的成员是提供给外部的接口 protected  保护         保护段成员在该类和它的派生类中可见 private    私有         私有段成员仅在类中可见
class  类名{public://公共权限        类的外部 类内部   类的派生类  友元
protected://保护权限    类内部   类的派生类  友元
private://私有权限    类内部    友元
};

比如:

//类的实例化,也就是创建一个类的对象GirlFriend mygirl1;mygirl1.playGame(); //访问错误,因为类中默认的权限是私有的,不能在类的外部访问私有成员

所以应该给成员添加权限:

//设计一个类class GirlFriend{public:    //行为--函数成员    void print(){        cout<<name<<age<<score<<endl;    }    int playGame(){        cout<<"playGame"<<endl;    }    int study(){        cout<<"study"<<endl;    }private:    //属性--数据成员    char name[256];    int age = 20;  //C++98标准不支持这种写法 C++11才支持    float score;    };

6、如何访问类中的成员

  • 类内部的成员访问其它成员,直接访问

  • 类的外部 访问类的成员,通过对象才能访问

7、特点

1)类的属性变量成员一般设置为私有权限,可以自己控制属性的读写权限,确保数据的安全性。还可以将用户传入的数据进行检测。

8、类的实例化

1). 静态分配内存GirlFriend mygirl1;    mygirl1.playGame();
2). 动态分配内存GirlFriend *mygirl1 = new  GirlFriend;    mygirl1->playGame();

9、类的成员内部声明,外部定义

//设计一个类class GirlFriend{public:    //行为--函数成员    void print();    int playGame();    int study(){        cout<<"study"<<endl;    }private:    //属性--数据成员    char name[256];    int age = 20;  //C++98标准不支持这种写法 C++11才支持    float score;    };//在类的外部进行定义void GirlFriend::print(){     cout<<name<<age<<score<<endl;}int GirlFriend::playGame(){     cout<<"playGame"<<endl;}
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐