1.面向对象
面向过程:根据业务逻辑从上到下写代码
面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程,
面向对象编程是把对象当作程序的基本单元,一个对象包含数据(属性)和操作数据的方法
2.定义类
类就是创建对象的模板
3.例子
class Car: #创建一个类,类名首字母大写
def move(self): #创建方法
print('车在疾驰')
def toot(self): #创建方法
print('车在鸣笛')
BMW=Car() #创建对象(实例化)
BMW.move() #调用方法
BMW.toot()
BMW.color='白色' #定义属性
BMW.wheelnum=4 #定义属性
print(BMW.color) #调用属性
print(BMW.wheelnum) #调用属性
bc=Car() #创建对象(实例化)
bc.toot() #调用方法
bc.color='黑色' #定义属性
print(bc.color) #调用属性
初始化,一个类里只能用一次初始化
class Dog(): #传入参数时加括号
def __init__(self): #初始化
print('正在创建对线并被初始化')
self.DogName='金毛' #定义属性
self.color='黄色'
def behavior(self): #定义方法
print('在汪汪叫')
dog=Dog() #创建对象(实例化)
print(dog.color) #调用属性
print(dog.DogName) #调用属性
dog.behavior() #调用方法
初始化传参
class Dog(): #传入参数时加括号
def __init__(self,DogName,color='黑色'): #初始化,传参数
print('正在创建对线并被初始化')
self.DogName=DogName #定义属性
self.color=color
def behavior(self): #定义方法
print('在汪汪叫')
dog=Dog('小狗') #创建对象(实例化)
print(dog.DogName)
print(dog.color)
4.继承概念
#创建父类
class Cat: #创建一个类,现在可以看做父类
def __init__(self,name,color='白色'): #定义属性
self.name=name
self.color=color
def run(self): #定义方法
print('%s在奔跑'%self.name) #定义方法
#继承就是创建一个父类与子类,子类能使用父类的一切方法与属性,而父类美不使用子类的属性和方法
class Bosi(Cat): #创建一个子类,不能写__init__了
def setname(self,newname,character): #没有被初始化,传入属性参数时,必须重新传入
self.name=newname #定义属性
self.character=character
def eat(self):
print('%s的%s在吃东西'%(self.name,self.character))
cat=Cat('动物') #创建父类对象
cat.run() #调用父类方法
print(cat.color) #调用父类属性
bosi=Bosi('波斯猫','可爱') #创建子类对象
bosi.run() #子类调用父类方法
print(bosi.name,bosi.color)
bosi.setname('波斯猫','可爱') #再次传入属性
print(bosi.eat) #调用子类方法
5.私有化方法和属性
前面加两个_(__)
6.多继承
一个子类可以继承多个父类
class First: #创建第一个类
def __init__(self,name):
self.name=name #定义属性
def one(self):
print('a') #定义方法
class Second: #创建第二个类
def tow(self,color):
self.color=color #定义属性
def sri(self): #定义方法
print('hahaha')
class Third(First,Second): #创建子类
pass
thi=Third('小明') #创建子类对象
print(thi.name) #调用第一个类的属性
thi.one() #调用第一个类的方法
thi.tow('黑色') #第二个类,属性传参
print(thi.color) #调用第二个类的属性
thi.sri() #调用第二个类的方法