类和对象区别是什么?

访客 python案例 1

本文目录导读:

  1. 详细对比
  2. 生活中的类比:建筑图纸 vs 房子
  3. 代码示例

类和对象是面向对象编程中的两个核心概念,可以这样理解它们的区别:

一句话概括: 类是模板(蓝图),对象是实际的产品(实例)。


详细对比

维度 对象
本质 抽象的、逻辑上的概念 具体的、物理存在的实体
内存 不占用内存(仅在定义时分配代码区) 占用实际的内存空间
创建时间 编译时定义 运行时创建(实例化)
数量 只有一个(定义一次) 可以有多个(每个对象独立)
示例 “人类”这个概念 你、我、张三(具体的某个人)

生活中的类比:建筑图纸 vs 房子

  • 类(Class):就像一张建筑图纸,它描述了房子应该有什么(属性:面积、房间数、颜色等),能做什么(方法:开门、开灯等),但图纸本身并不是房子,不能住人。
  • 对象(Object):就是根据这张图纸实际建造出来的那一栋房子,它可以有不同的颜色、不同的住客,甚至可以建很多栋一模一样的。

代码示例

Python 为例演示:

# 1. 定义类(图纸)
class Car:
    def __init__(self, brand, color):
        # 属性
        self.brand = brand
        self.color = color
        self.speed = 0
    # 方法
    def drive(self):
        print(f"{self.color}的{self.brand}正在行驶。")
# 2. 创建对象(根据图纸造车)
my_car = Car("Tesla", "红色")       # 对象1
friends_car = Car("BMW", "白色")   # 对象2
# 3. 使用对象
print(my_car.brand)    # 输出:Tesla(不同对象有不同属性值)
print(friends_car.brand) # 输出:BMW
my_car.drive()         # 输出:红色的Tesla正在行驶。
friends_car.drive()    # 输出:白色的BMW正在行驶。
# 注意:类 Car 本身不占对象内存,而 my_car 和 friends_car 是两个独立的内存空间
  1. 抽象 vs 具体

    • 类是抽象的(定义“是什么”)
    • 对象是具体的(表示“存在的一个”)
  2. 共享 vs 独立

    • 类的方法定义是一次性共享给所有对象的(节省内存)。
    • 每个对象的属性值是独立存储的(张三的年龄和李四的年龄可以不同)。
  3. 逻辑 vs 存储

    • 类是逻辑结构(代码写在哪)。
    • 对象是存储实体(数据存在哪)。

一句话记忆: “类”是制作饼干的模具,而“对象”是生产出来的那些能吃到的饼干。

标签: 抽象 实例

抱歉,评论功能暂时关闭!