类和对象的区别

类和对象的区别

1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。

2,对象是类的一个具体。它是一个实实在在存在的东西。

3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。

4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。

什么是类, 什么是对象, 类和对象之间的关系

类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。

对 象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角 度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务 的封装体。客观世界是由对象和对象之间的联系组成的。

类与对象的关系就如模具和铸件的关系

类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性(属性)和相同行为(方法)的对象。
### C++ 中对象区别 在 C++ 编程语言中,对象是两个核心概念,它们共同构成了面向对象编程的基础。以下是两者的主要区别: #### 1. 定义上的差异 - ** (Class)** 是一种用户自定义的数据型,用于描述具有相同属性行为的一组实体。它是抽象的概念,表示某种型的模板或蓝图[^4]。 - **对象 (Object)** 则是的具体实例。通过可以创建多个对象,每个对象都拥有独立的状态行为。 #### 2. 抽象 vs 实例 - 是一个抽象的概念,不占据实际的内存空间(除了可能存在的静态成员变量),仅作为数据结构方法的集合存在[^1]。 - 对象则是具体的实体,当一个被实例化为对象时,会分配相应的内存来存储其非静态成员变量。 #### 3. 存储方式的不同 - 如果一个没有任何非静态成员变量,则该对象通常会被赋予至少一个字节的空间以区分不同的对象实例[^2]。 - 静态成员变量属于整个共享的部分,不会影响单个对象的内存大小。 #### 4. 生命周期管理 - 本身在整个程序执行期间始终存在;而对象则有各自的生命周期,取决于它们是如何声明销毁的。 #### 示例代码展示 下面给出一段简单的例子说明如何定义一个 `Student` 并基于此创建若干个学生对象: ```cpp // student.h 文件内容如下: #ifndef STUDENT_H_ #define STUDENT_H_ #include <iostream> using namespace std; class Student { public: string name; int grade; void display(); }; #endif // student.cpp 文件内容如下: #include "student.h" void Student::display(){ cout << "Name: " << this->name << ", Grade:" << this->grade << endl; } int main() { // 创建第一个学生对象s1 Student s1; s1.name="Tom"; s1.grade=90; // 调用显示函数打印信息 s1.display(); // 创建第二个学生对象s2 Student s2={"Jerry",85}; s2.display(); return 0; } ``` 上述代码片段展示了如何利用去构建具体的学生对象,并操作这些对象的方法[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值