zoukankan      html  css  js  c++  java
  • python3.6入门到高阶(全栈) day015 初识面向对象

    今日主要内容
    1. 面向对象和面向过程(重点在于理解)
    面向过程: 以我为中心. 按照事物的发展"流程".
    优点:负责的问题流程化,编写相对简单
    缺点:可拓展性差

    面向对象: 以对象为中心.
    优点: 可拓展性强
    缺点: 编程的复杂度高于面向过程

    万事万物皆为对象(object)

    2. 如何编写面向对象的程序(重点)
    先创建类: 归类. 对某些事物进行总结. 相当于图纸
    使用类可以创建对象:
    class 类名(object)
    def __init__(self, name, age): # 构造方法. 创建对象的时候自动调用这个方法
    self.name = name
    self.age = age

    def 方法名(self, 参数);
    方法体(return)

    创建对象:
    变量(引用, 句柄) = 类名(参数)

    # 访问对象的属性信息
    对象.属性
    # 方法的访问:
    对象.方法()

    例 class Car:
    def __init__(self, color, pai, pailiang): # self表示当前类的对象. 当前你创建
    的是谁, 谁来访问的这个⽅法.那这个self就是谁.
    self.color = color
    self.pai = pai
    self.pailiang = pailiang
    def run(self, speed):
    print("⻋可以跑%s迈" % speed)
    c = Car("red", "京A66666", "2.0T")
    c.run(100) # 这时. python会⾃动把对象c传递给run⽅法的第⼀个参数位置.

    对比面向对象和面向过程:
    看需求.
    大型项目更适合用面向对象
    小型脚本程序更适合面向过程

    3. 面向对象的三大特征: 封装, 继承, 多态
    1. 封装
    对属性封装
    self.xxx = xxxx
    对方法封装
    2. 继承
    子类可以自动拥有父类中除了私有内容外的其他所有内容
    例 class QinDie:
    def chi(self):
    print("亲爹给你好吃的")
    def play(self):
    print("亲爹会陪你玩")
    class GanDie:
    def qian(self):
    print("⼲爹给钱啊")
    def play(self):
    print("⼲爹会陪你玩")
    class GuNiang(QinDie, GanDie):
    pass
    bumei = GuNiang()
    bumei.chi() # 亲爹
    bumei.qian() # 亲爹没有, 找⼲爹
    bumei.play() # 亲爹有了, 就不找⼲爹了

    3. 多态
    同一个对象多种形态.
    程序具有超高的可扩展性. ⾯向对象思想的核⼼与灵魂. python⾃带多态
    例 class Animal:
    def chi(self):
    print("动物就知道吃")
    class Pig(Animal):
    def chi(self):
    print("猪在吃")
    class Haski(Animal):
    def chi(self):
    print("哈⼠奇在吃")
    class Alasika(Animal):
    def chi(self):
    print("阿拉斯加在吃")

    class SiYangYuan:
    def yanng_animal(self, ani):
    ani.chi()

    zhu = Pig()
    erha = Haski()
    ala = Alasika()
    alex = SiYangYuan()
    alex.yanng_animal(zhu)
    alex.yanng_animal(erha)
    alex.yanng_animal(ala)
  • 相关阅读:
    WP2Sinablog使用后的后遗症
    .NET Framework 4 与 .NET Framework 4 Client Profile
    360浏览器也有了开发人员工具了
    让你的手机号“变”qq号
    首次体验 Live Writter
    判断素数
    SqlServer文件挂起
    vni—2015:验证错误
    成功者善于模仿(转)
    dbms_output缓冲区溢出
  • 原文地址:https://www.cnblogs.com/wanxiangai/p/9917267.html
Copyright © 2011-2022 走看看