类和对象
大家好,这个章节我们要聊聊面向对象编程中的两个基本概念:类和对象。
简介

首先我们先了解一下类和对象的概念。
什么是类
在面向对象编程中,类 Class 是一种定义现实事物属性和方法的蓝图或模板。类描述了现实事物的特征属性和行为方法。可以把类看作是创建现实事物的原型。
类是现实事物的抽象,它定义了一类具有相似特征和行为的事物的通用结构和行为。类提供了对象所需的状态和行为,并定义了对象的初始化、操作和销毁等方法。
类由属性(也称为成员变量)和方法组成。属性是类的特征,用于描述类的状态。方法是定义在类中的函数,用于描述类的行为和操作。

先来看看什么是“类”。类可以看作是一个蓝图或模板,它定义了现实世界事物的属性和行为。举个简单的例子,假设你想创建一辆汽车的模型,那么这个模型就可以作为“类”,它描述了汽车的属性(比如颜色、品牌、车速等)和行为(比如启动、刹车、加速等)。你可以把类看作是现实世界事物的抽象,它没有具体的实例,但它告诉我们如何创建这些实例。当我们通过类去创建具体对象时,类就成了这些对象的构建指南。总结来说,类是我们定义事物的模板,它包含了属性和方法。属性就是事物的特征,而方法则是事物能做的事情。
通过使用类,我们可以创建多个具有相同属性和方法的对象。类中的属性和方法是相对独立的,每个对象都有自己的属性副本,但共享类中的方法。
例如,我们可以定义一个名为 Person 的类,该类可以有属性如姓名、年龄、性别等,方法如获取姓名、修改年龄、输出个人信息等。然后,我们可以创建多个实例(对象)来表示不同的人,每个实例都有自己的姓名、年龄和性别。
通过类的封装和抽象,可以更好地组织和管理代码,提高代码的可读性、可维护性和重用性。类是面向对象编程的重要概念之一。
比如说,我们可以定义一个Person类,这个类有一些属性,比如姓名、年龄、性别等;同时,它也有一些方法,比如获取姓名、修改年龄、输出个人信息等。通过这个类,你可以创建多个对象,每个对象都有自己独立的属性值,但是它们共享相同的方法。比如,你可以创建两个不同的人对象,尽管他们有不同的名字、年龄,但他们都可以调用相同的“修改年龄”方法。
什么是对象
在面向对象编程中,对象(Object)是类的一个实例。对象是具体存在的,具有状态和行为的实体。
可以把类看作是对象的模板或蓝图,描述了对象应该具有的属性和方法。当我们通过类创建一个具体的实例时,这个实例就是一个对象。

接下来我们来看看什么是“对象”。对象是类的一个实例,它是具体存在的,具有状态和行为的实体。可以把类看作是一个模板,而对象就是按照这个模板实际创建出来的事物。举个例子,假设你有一个Car类,它定义了汽车的属性和行为。那么,当你创建一辆具体的车时,这辆车就是一个对象。每辆车都有自己的属性,比如品牌、颜色、速度等,但它们共享相同的行为,比如启动和加速。
对象有两个关键的特征:状态和行为。
- 状态(State):对象的状态由它的属性(也称为成员变量)决定,属性表示了对象的特点和特征。例如,一个人对象的状态可以包括姓名、年龄、性别等属性,这些属性的值可以根据对象的实际情况而不同。
- 行为(Behavior):对象的行为由它的方法(也称为成员函数)决定,方法表示了对象能够执行的操作和行为。例如,一个人对象的行为可以包括走路、说话、工作等方法,通过调用这些方法可以让对象执行相应的行为。
这里大家要注意,对象有两个关键特征:状态和行为。状态是由对象的属性决定的,行为是由对象的方法决定的。比如,在“人”的类里,状态就是姓名、年龄等,而行为则是走路、吃饭等。对象的状态是由它的属性决定的,而行为是由它的方法决定的。举个例子,一个“人”的对象可以有以下状态:姓名:小张、年龄:25岁、性别:男。而它的行为可以是:走路、跑步、吃饭。这些行为就是通过对象的方法来执行的。你可以通过调用这些方法让对象执行某个操作,比如调用 walk()方法让这个人开始走路,调用eat()方法让他吃饭。
对象是类的实例,可以根据类的定义创建多个对象。每个对象都有自己的属性值,在相同的类下,不同的对象可以具有不同的状态和行为。
通过对象,我们可以对数据进行封装和操作,通过对象之间的交互和消息传递,实现程序的逻辑和功能。
总结来说,对象是具体的实体,具有属性和方法。它是类的一个实例,通过类定义可以创建多个对象。对象是面向对象编程的核心和基本单位,通过对象的封装和抽象,我们可以更好地组织和管理代码。

通过对象的封装和抽象,我们可以更好地管理和操作数据。对象之间可以通过相互调用方法和交换信息来完成复杂的操作。比如,你可以有一个“学生”类,然后对应了很多个学生对象,每个学生都有自己的姓名、年龄、成绩等。学校对象可以通过调用学生对象的相关方法来查询成绩,或者修改学生的年龄。总结来说,对象是类的实例,它拥有自己的属性和方法,通过这些属性和方法我们能够很方便地操作和管理数据,也让代码变得更加模块化和清晰。
类的定义
Python 使用 class 关键字来创建一个新类,class 之后为类的名称。
Python 存在一个根类 object 类,所有的类都由根类派生而来,如果自定义类继承于根类,可以省略。
class ClassName:
pass
# 或
class ClassName(object):
pass
接下来我们来看看如何定义一个类。在Python中,我们使用class关键字来定义类。定义格式也非常简单。你只需要写上class,后面跟上类的名字即可。Python中的类都隐式继承自object类,所以可以省略不写。
示例:
class Plane:
def flying(self,hour):
print(f"飞机已飞行{hour} 小时。。。")
举个简单的例子,下面是一个Plane类的定义。这个类定义了一个flying方法,这个方法接受一个hour参数,表示飞行的小时数,然后输出飞机已经飞行的时间。
实例对象
一个类定义好了,还不能使用,比如系统的 list 类,类只是规定了该类型的数据具有什么特征和行为,而真正要去使用这些特征和行为,必须有一个真实的列表存在。
实例对象本质上就是使用自定义类型去声明一个变量。
格式:实例对象名 = 类名()
class Plane:
def flying(self, hour):
print(f"飞机已飞行{hour} 小时。。。")
# 实例了两个对象
air_plane1 = Plane()
air_plane2 = Plane()
# 使用不同的对象调用了类中的方法
air_plane1.flying(3)
air_plane1.flying(5)
air_plane2.flying(3)
定义了类之后,我们需要创建实例对象才能实际使用它。类只是一个模板,它并没有具体的数据,只有通过实例化(也就是创建对象)才能使用类定义的属性和方法。创建对象的方法是:对象名等于类名,这就是实例化过程。比如,我们可以创建Plane类的实例对象,表示不同的飞机。创建了两个飞机对象之后,我们可以分别调用它们的flying方法,给它们飞行不同的小时数。这样,每个对象都有自己的行为,不同的对象可以执行不同的操作。
总结
- 类的定义
- 实例对象
最后我们来总结一下,今天我们介绍了“类”和“对象”这两个基本概念。类是对象的蓝图,它定义了对象的属性和方法;而对象则是类的实例,是具体存在的实体。我们通过类来创建对象,而每个对象有自己的状态和行为。通过类的封装和抽象,我们可以有效地组织代码,提高代码的可维护性和复用性。希望大家能够理解这些基本概念,掌握如何定义类、如何实例化对象,并能够灵活运用它们来实现更加模块化和清晰的代码结构。