1、面向对象编程概述
面向对象编程(oop),是一种编程方式,这种编程方式需要使用“对象”实现。
对象的特征
- 世界万物皆对象
- 每个对象都是唯一的
- 对象具有属性和行为
- 对象具有状态
- 对象分为类对象和实例对象两大类:
- 类对象是具有相同属性和行为的实例对象的抽象
- 类对象是实例对象的模板,实例对象是有类对象创造出来的
- 同一个类对象的所有实例对象若具有相同的属性,表明它们的属性的含义是相同的,但是它们的属性的取值不一定相同
面向对象编程的大体步骤
- 抽象出类对象
- 抽象出类对象的属性
- 抽象出类对象的行为(方法)
- 根据类对象创建实例对象
- 通过实例对象访问属性和方法
定义对象的语法格式
class 类名(object): #属性与方法
- 类名由一个或多个单词组合而成,每个单词的首字母大写且其余字母全部小写
- (object)表示该类对象继承自python内置的类对象object,python中所有的类对象都继承自一个统一的基类
初识属性
猫的属性有:
class Cat(object):
def __init__(self,breed,name,age,health)
self.breed = breed #品种
self.name = name #昵称
self.age = age #年龄
self.health = health #健康状态
- 为了在创建实例对象后对其进行初始化(如:给实例对象绑定一些属性),可以在类对象中定义一个名为__init__的特殊方法(以双下划线开头和结尾的方法)。这样创建实例对象后就会自动调用特殊方法。
- 若没有定义特殊方法__init__,或者定义了特殊方法__init__但是没有定义除self之外的形参,那么根据类对象创建实例对象时就不需要传入实参了
- 若在类对象中定义了特殊方法__init__,那么对于“类名([实参])”,会执行两大步:
1. 创建实例对象
2. 自动调用创建的实例对象的特殊方法__init__(创建的实例对象会作为实参被自动传递给特殊方法__init__的第一个形参self)。
初识类的方法
猫的行为有:
def run(self): #跑
print("Cat is running.")
def miao(self): #喵
print("Cat is miaoing.")
def eat(self): #吃
print("Cat is eating.")
类的方法与函数的区别
- 定义方法时,方法的第一个形参表示调用该方法的实例对象,第一个形参的名称是self,也可以是其它名称。
- 调用方法时,系统自动将调用该方法的实例作为实参传递给第一个形参。第一个实参会传递给第二个形参,第二个实参会传递给第三个形参,以此类推。
根据对象创建实例对象的语法格式:
类名([实参])
#根据类对象创建实例对象
cat = Cat("波斯猫","喵喵", 1,"很好")