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中的一种
原文地址:https://www.cnblogs.com/tjp40922/p/9918227.html