C++封装篇 类和对象

内容:1、什么是类和对象?

           2、数据成员、成员函数。

           3、类的访问限定符(public、private)


1、什么是类和对象?

     以狗狗为例:

信息:

名字:旺财

年龄:1.5岁

品种:宠物狗

技能:

看门

吃东西

我们可以将狗的信息抽象出来,定义一个狗的类。如:

#include<iostream>
using namespace std;

class Dog
{
    char name[20];
    int age;
    int type;
    
    void speak();
    void KanMeng();
    void eat();
};

类——>class

类名——>Dog

数据成员(也可以叫做属性)——> char name[20];
                                                          int age;
                                                          int type;

成员函数(也可以叫做方法)——>void speak();
                                                        void KanMeng();
                                                        void eat();

思考:上面抽象出来的是否是狗的全部信息?

答:答案显然是不是。

       狗的体重是多少?

       狗的发情期为几个月?

       狗肉的蛋白质含量?

结论:目的不同抽象出的信息就相对不同。

再以电视为例:

class TV
{
    char name[20];//电视机的铭牌
    int type;//电视机的型号
    
    void changeVol();//音量调节
    void power();//电源控制
};

显然,这里的属性和方法很少,但如果什么都需要显示的话就会出现这样的情况。比如说:

如果你对电视构造不是那么清楚的话,你可能就会想问:

  电源在哪?

  调节音量在哪?

  工作过程是怎样的?

那么看电视的人,也会头大。

所以,我们需要——选择性暴露将实现细节封装起来,只给用户暴露出需要的部分就行了。如:

class TV
{
    char name[20];//电视机的铭牌
    int type;//电视机的型号
    
    void changeVol();//音量调节
    void power();//电源控制
};

这些是可以暴露的。

电阻调节

像素配色

这些是希望隐藏的。

思考:如何把想暴露出的信息暴露出,想隐藏的信息隐藏起来呢?

答:c++给我们提供了访问限定符:

      public:公共的

      protected:受保护的

      private:私有的

所以我们可以这样来修改代码:

class TV
{

   public://希望暴露
    char name[20];//电视机的铭牌
    int type;//电视机的型号
    
    void changeVol();//音量调节
    void power();//电源控制

   private://希望隐藏

   电阻调色

   像素配色
};

猜你喜欢

转载自blog.csdn.net/biubiuxin/article/details/81162972