一、什么是类和对象
类和对象一般是编程中较早接触到的比较抽象的概念,其实我们只要按照我们现实生活的实例去类比,就很好理解了
概念理解
我们可以把类比做是一个盖房子的图纸,对象比做是根据图纸去创建出来的一栋房子,这样每栋房子的户型,都是和图纸是一样的,所以说,类就好像一个规范,房子是根据类去创建的实物。同时,我们在拿到房子之后,是不是可以自己装修,每个人喜欢的装修风格都不一样,有的人喜欢简约风,有的人喜欢豪华装修,这样我们每间房子,也可以有不一样的地方,这就是我们后面要说的继承,多态…
代码理解
1、类的定义
class Home:room = 3height = "2m" # 类属性 - 可以理解为图纸上面写的,每间房子的高度,材料等信息,这个信息对于每栋房子都是一样的, 所以在每个房子中,都可以有一个height属性,他的值为"2m"def __init__(self, room): # 创建一个构造方法 构造方法解释:构造方法是一个在对象创建时,执行的方 法,可以理解为,在房子施工前,记录下用户需要几室几厅,然后按需去建造,具体如何使用,后面会介绍self.room = room # 实例属性 这里的意思是把传进来的room 赋值给类属性的room def sleep(self,name):print(f'{name}在睡觉') #方法 每间房子的作用,都可以用来睡觉@staticmethod #静态方法 静态方法是与类平行的方法,可以通过类名.方法名直接调用def info():print("This is a Home")
2、类的使用
zhangsan_home = Home() #创建对象,可以理解为,给张三创建一个属于他的房子
lisi_home = Home(4) #给李四创建一个房子,但是李四需要四室的房子,所以这里走到__init__方法传进去一个4,给room进行赋值,
lisi_home.sleep('李四') #这里是调用类中的睡觉方法Home.info() #这里是直接通过类名直接调用静态方法
代码示例
class Home:height = "2m" #类属性的定义room = 3def __init__(self,room = room): #构造方法,这里有个小细节,下面张三的对象在构造的时候,并没有传room,这时候,我们就给room一个默认值,这样他就变成可选参数了self.room = roomdef sleep(self,name): #普通方法,也是最常用的方法print(f'{name}在睡觉')def print_message(self): #用来打印当前房子的信息print(f'当前房子{self.height}高,{self.room}间房子')@staticmethoddef info(): #静态方法print('我是静态方法')zhangsan_home = Home()
zhangsan_home.sleep('张三')
zhangsan_home.print_message()lisi_home = Home(3)
lisi_home.print_message()Home.info()
运行结果
结语
类和对象是面向对象语言基本的概念,是从面向过程到面向不可或缺的知识,刚开始学习会有些抽象,这里建议初学者先使用起来,这样在后面的使用时,自然就会慢慢加深对类和对象的理解了