zoukankan      html  css  js  c++  java
  • day16 初识面向对象

    今天主要学习内容:

    1.初始面向对象

    2 .类 ,对象

    3,面向对象和面向过程的对比

    4.面向对象的三大特征

    1,初始面向对象

    面向过程 :

       一切以实物的发展流程为中心

    面向对象:

       一切以对象为中心,一切皆为对象  ,具体的某一个事物就是对象

    打比方 大象进冰箱 :

     步骤 第一步 ,开门  第二部 , 装大象 ,第三步,关门

     面向对象: 大象自己进冰箱 

     2 .类与对象

    class car: #类名 ,创建对象
      pass
    
    #造车
    c=car() #创建一辆车
    c.color='红色' #给车添加属性
    c.pai='鲁A88888' 
    c.pailaing='1.4T'
    print(c.color)
    

     下面我们要介绍一种新方法

    class car(): #创建类
        def__init__(self,color,pai,pailiang):# __init__(self)是默认开始创建的属性,
    在创建对象的时候,默认执行这个函数 self.color=color #给车一个颜色 self.pai=pai self.pailiang=pailiang def pao(self): #定义一个动作,在类中写函数叫方法(与函数的定义一样) print('我的车会跑') che=car('红色','鲁A88888','200T') #传参 che.pao() #执行你的车的动作

    3. 面向对象与面向过程的对比  

     1) 脚本  (此时代码最简单,但是不需要构思整个程序的概况)

    print("开门")
    print("装大象")
    print("关门")
    

     2) 函数式编程(比脚本麻烦,对功能有了概括,稍微有了点逻辑)

     def kai():
         print('开门')
     def zhuang():
         print("装大象")
     def guan():
         print('关门')
    

     3) 面向对象编程 ,整个系统进行分析,分析出需要那些对象,然后给对象进行归类

    #先写类,然后使用类创建对象,最后用对象去执行相关的操作
     class Elephant:
         def __init__(self):
             print("创建了一个大象")
         def kai(self):
             print("大象开门")
         def zuan(self):
             print("大象进冰箱")
         def guan(self):
             print("大象把门带上")
     dx = Elephant()
     dx.kai()
     dx.zuan()
     dx.guan() 

    函数侧重的是功能
    面向对象侧重的是 归类

    面对对象的程序:结果相对清晰 .缺点: 代码量比原来大,上手难

    面对对象比面向过程啥味好一些,可维护性比原来好 

    python同时支持面向对象和面向过程:
    面向过程: 应用程序相对比较小. 不需要大规模的设计
    面向对象: 程序非常大. 项目管理 维护成本很高. 此时更适合用面向对象(结构)

    4. 面向对象的三大特征 : 封装 ,继承 ,多态

    1) 封装 

            对属性的封装

            对功能的封装

        模块

        包

     class Student:
         def __init__(self, num, name, clazz):
             self.num = num
             self.name = name
             self.clazz = clazz
     stu = Student("10010", "曹宝哥", "三年二班")  # 把多个信息(值) 保存在一个对象里面
     stu2 = Student("10086", "王低", "三年一班")
    
     def kill_stu(s):
         print("杀%s" % (s.name))
     kill_stu(stu2)
    
     class Game:
    
         def login(self):
             print("登录")
    
         def recharge(self):
             print("充钱")
    
         def uninstall(self):
             print("卸载")
         def zhaoduixiang(self):
             print("找对象")
     class Game1:
         def recharge(self):
             print("充钱")
         def uninstall(self):
             print("卸载")
     class Game2:
         def recharge(self):
             print("充钱")
         def uninstall(self):
             print("卸载")
     g = Game2()
     g.uninstall() 

    2) 继承  当出现xxx是一种yyy类型的东西. 可以使用继承关系

     子类自动拥有父类中除了私有内容外的其他所有内容
     王思聪(熊猫TV) -> 王健林(年龄)
     继承目的: 对父类进行扩展

    父类的对象不能执行子类中的功能

     class Foo:
         def getMoney(self):
             print("拿钱")
     class Bar(Foo):
         pass
    
     b = Bar()
     b.getMoney() # 此时调用的是父类中的方法
    

    3) 多态  

    多态性: 同一个对象. 多种形态.
    python支持的是鸭子类型. 会嘎嘎叫的东西就是鸭子
    为了程序能够正常执行. 本来需要传递进来一只鸭子. 但是我只需要传递一个会嘎嘎叫的东西就可以了

    #  模拟动物园
    # class Animal:
    #     def chi(self):
    #         print("会吃")
    #
    # class GoldenMonkey(Animal):
    #     def chi(self):
    #         print("用手拿着吃, 五花八门")
    #
    # class Tiger(Animal):
    #     def chi(self):
    #         print("老虎吃肉")
    #
    # class Elephant(Animal):
    #     def chi(self):
    #         print("大象吃香蕉")
    #
    # class QiE(Animal):
    #     def chi(self):
    #         print("企鹅吃人民币")
    #
    # # 以下代码是饲养员
    # # 优点:超强的可扩展性. 面向对象的核心就是多态
    # def wei_animal(ani): # 传进来的东西要会吃就行
    #     ani.chi()
    #
    # # 动物园
    # t = Tiger()
    # m = GoldenMonkey()
    # e = Elephant()
    #
    # wei_animal(t)
    # wei_animal(m)
    # wei_animal(e)
    

      

  • 相关阅读:
    Memcached 内存分配机制介绍
    PHP与Memcached服务器交互的分布式实现源码分析
    yii 操作cookie
    Python urllib2递归抓取某个网站下图片
    mysql 知识 show status
    要读的书培根说:历史使人明智,诗词使人巧慧,算学使人精密,哲理使人深刻,伦理学人庄重,逻辑修辞使人善辩。
    思考的技术懒于求知的人没有生存空间
    相约星期二记录
    谁是最重要的人
    Netstat命令详解
  • 原文地址:https://www.cnblogs.com/zty1304368100/p/10133358.html
Copyright © 2011-2022 走看看