1.什么是类(class),什么是对象(obj)

69 阅读2分钟

核心概念:蓝图与实体

想象一下,你要盖一栋房子。

  • 类 (Class) :就是那张 设计蓝图 。这张蓝图详细描述了房子的所有属性(比如有几个房间、多大面积、什么颜色)和功能(比如门可以开、窗可以关)。 蓝图本身不是房子,它只是一个模板或规范。
  • 对象 (Object) :就是根据这张蓝图 实际建造出来的房子 。你可以用同一张蓝图建造出很多栋房子,每一栋都是一个独立、具体的实体。比如,张三的房子和李四的房子都是根据同一张蓝图盖的,但它们是两个不同的房子,可以有不同的地址和装修。

在C++中的定义

1. 什么是类 (Class)?

在C++中, 类 (Class) 是一个用户自定义的数据类型。它像一个模具,将**数据(成员变量/属性) 和 操作这些数据的函数(成员函数/方法)**捆绑在一起。

  • 封装 (Encapsulation) :类将数据和操作数据的代码封装在一个单元里,隐藏了内部复杂的实现细节,只对外暴露有限的接口。
  • 抽象 (Abstraction) :类是对现实世界事物的一种抽象。比如,我们可以创建一个 Car 类来抽象地描述所有汽车的共同特征和行为。

2. 什么是对象 (Object)?

对象 (Object) 是类的一个 实例 (Instance) 。当你根据一个类的定义,在内存中创建了一个具体的、存在的变量时,这个变量就是对象。每个对象都拥有类所定义的属性和方法,但对象的属性可以有自己具体的值。

总结:类是抽象的模板,对象是具体的实体。

最简单的代码示例

我们来定义一个学生类,这个类就是学生信息登记表的模板,包含姓名和学号

#include <iostream>
#include <string>

using namespace std;


//  1. 定义一个 "学生类" (Student) - 这就是蓝图 
class Student
{
public:// public 表示这些信息是公开的,可以从外部访问
    
	// 类的属性 (成员变量) - 模具上刻的槽,用来放信息
	
	string name;// 学生姓名 
    int age;// 年龄 
    int studentID;// 学号
    
	// 类的功能 (成员函数) - 模具自带的功能说明
    void introduce()
    {
        cout << "我叫" << name << endl;
        cout << "今年" << age << "岁" << endl;
        cout << "我的学号为" << studentID << endl; 
    }
};

//  2. 创建和使用 "对象" (Object) - 这就是用模具造出来的“真饼干”
int main()
{
	// 创建第一个学生对象,名叫 "张三",再给"张三"填上其他信息 
    Student stu1;
    stu1.name = "张三";
    stu1.age = 25;
    stu1.studentID = 2025001;
    
    // 创建第一个学生对象,名叫 "李四",再给"李四"填上其他信息 
    Student stu2;
    stu2.name = "李四";
    stu2.age = 23;
    stu2.studentID = 2025002;
    
    //调用 introduce这个方法 
    stu1.introduce();
    stu2.introduce(); 
    
    return 0;
}