day14 面向对象
1. 面向对象和面向过程 1.面向过程:核心是过程,是流水线
优缺点: 1.流程化,编写简单 2.可扩展性差 2.面向对象:核心是对象(对象:具有相同属性和动作的结合体) 优缺点: 1.可扩展行强 2.复杂度高于面向过程
总的来说:
面向对象适合大型项目 面向过程适合小型脚本
2.如何编写面向对象的程序(重点) 1.先创建类,归类,相当于图纸 语法: class 类名:(类名首字母大写) def __init__(self,name,age....) #构造方法,创建对象的时候自动访问, self.name=name #self,自己,自身,当前正创建的 self.age=age #在创建谁,谁就是self 有python自动传递 def 方法名(self,参数) 方法体 2.创建对象 变量=类名(参数)
变量.特征="xx" 可以通过这样的赋值给对象设置属性,其中.代表的是什么的
3.对象的操作 1.访问对象的属性 对象.属性 print(c.name) 2.访问对象的方法 对象.方法() #对象具有什么方法就能调用什么方法
总的来说,类是对象的抽象描述,对象是类的实例化结果
3.面向对象的三大特征: 1.封装 1.对对象的封装(相同属性和动作) 2.对属性的封装self.xxx=xxx 2.继承 子类拥有父类中出私有方法外的方法
前提是先有父类后有子类
语法:
class 类名(父名1.父名2)
调用方法时还是先从自身找,再找父类的,父类根据排序的先后找 3.多态 同一个对象,拥有多种形态
例:
class Animal:
def dong(self)
print("动物可以动")
class Cat(Animal):
def chi(self)
print("猫会吃")
c=Cat()
c.chi()
c.dong()
结果:
猫会吃 #站在猫的角度上
动物可以动 #站在动物会动
c并不是通过Animal创建对象,但是c确实Animal中的一种