zoukankan      html  css  js  c++  java
  • python之路--初识面向对象

    一 . 初识面向对象

    面向过程:
      一切以事务的发展流程为中心.
    面向对象:
      一切以对象为中心. 一切皆为对象. 具体的某一个事务就是对象
    
    打比方:
      大象进冰箱
        步骤: 第一步, 开门, 第二步, 装大象, 第三步, 关门
    
        面向对象:大象, 你进冰箱.
          此时主语是大象. 我操纵的是大象. 此时的大象就是对象

    二 . 类.对象

    类: 就是图纸. 创建对象的第一步. 先画图纸. 先写类.
      对象: 对象就是车. 通过图纸造出来的具体的东西. 通过类来创建对象
    
      类与对象的关系:
        类是对xxx事物的归类.
          写:
            __init__(self, 参数) 参数一般作为属性设置给对象. 对象就是self, 对属性的封装.
    
            def 方法(self, 参数): 方法. 第一个参数一般是固定的self. 当前类的对象.
              pass
    
        对象是xx类型的一个具体
          创建对象: 类名()
    创建类:
        class 类名:
    
          def __init__(self): # 初始化方法. 又被成为构造方法
            self.属性 = 值
            self.属性 = 值
            self.属性 = 值
    
          def fangfa(self):
            方法体(函数体, return)
    
        创建对象:
          变量 = 类名() # 实例化 <-> 创建对象
    
          变量.属性 # 访问对象的属性信息
          变量.方法() # 访问类中的方法
    class Hero:
        def __init__(self, waihao, name, story):
            self.waihao = waihao
            self.name = name
            self.story = story
        def q(self):
            print("拎着宝剑嗷嗷跑")
        def w(self):
            print("护盾")
        def e(self):
            print("电风扇")
        def r(self):
            print("大宝剑")
    gw = Hero("德玛西亚之力", "盖伦", "500年前盖伦拿一个破棍子捅破了玉皇大帝的尿壶...埋在五指山下")
    gw.q()
    gw.w()
    gw.r()
    class Phone:
        def __init__(self, color, dianchi, num, price):
            self.color = color
            self.dianchi = dianchi
            self.num = num
            self.price = price
        def call(self, ren):
            print("使用我的%s颜色价值%s的电话打给%s" % (self.color, self.price, ren))
        def play(self):
            print("电话可以打游戏")
    sj = Phone("黑色", "5W安", "110", "9W欧元")
    sj.call("刘德华")
    sj.play()

    三 . 面向对象和面向过程的对比  

    如果写一些比较小的程序用面向过程.
    程序很复杂. 很庞大建议用面向对象.

    三 . 面向对象的三大特征

    封装:
        1. 对属性的封装(__init__())
        self.xxx = xxx
        2. 对方法和功能的封装
    
    继承
      子类自动拥有父类中除了私有内容外的其他所有内容
      class Bar(Foo): Bar对Foo进行了扩展
        pass
      当出现x是一种y的时候. 推荐使用继承关系
      python支持多继承. 查找顺序: 先找离他近的.
    
    多态(python原生直接就是多态)
      python更多的支持的是鸭子模型, 只要会嘎嘎叫就是好鸭子

      鸭子模型

    # 鸭子模型
    
    class Animal:
        def eat(self):
            print('动物会吃')
    
    class Tiger:
        def eat(self):
            print('老虎也会吃')
    
    class Cat:
        def eat(self):
            print('猫也能吃')
    
    # 只要能eat()的就是动物
    def func(animal):
        animal.eat()
    
    
    t = Tiger()  # Tiger有eat() 所以Tiger是动物
    c = Cat()   # Cat有eat() 所以Cat也是动物
    func(t)
    func(c)


      

  • 相关阅读:
    oracle之同义词
    oracle之序列
    oracle之视图
    oracle表空间
    oracle 闪回技术
    oracle权限管理
    oracle的undo表空间
    创建数据库之间的连接
    oracle监听
    oracle11g文件系统库迁移到ASM库上面
  • 原文地址:https://www.cnblogs.com/attila/p/10133873.html
Copyright © 2011-2022 走看看