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

    一、面向对象

    面向过程的程序设计:注重点是过程,过程就是解决问题的步骤,即干一件事情的先后顺序,这是一种机械式的思维方式

    优点是:复杂的问题流程化,简单化

    缺点是:设计好的一套流程是用来解决一个问题的,这一套流程是死的,不能局部更改流水线的方法,一旦更改,整个流水线程序都得更改,牵一发动全身!

    应用场景:一旦设计好就不再改变的场景

    面向对象的程序设计:注重点是对象,在大自然中一切皆对象,在程序中也是,我们要去创造对象。但是在程序中是先有类,然后再有对象。我们要去创造对象代替我们去干事儿。

    优点是:解决了程序的扩展性,可以单独修改一个部分,修改之后可以反映到整个体系中。

    缺点是:编程难度大于面向过程。无法预测问题的处理流程和结果。

    应用场景:需要经常变化的软件,即要经常更新的软件,比如QQ,微信,各类游戏等等

    二、类与对象

    类就是类别,种类,是面向对象程序设计的重要概念。对象是特征和技能的结合体,类则是一系列对象相似的技能与技能的结合体

    在现实生活中;先有对象,再有类

    在程序中必须是先有类,再有对象

    关于__init__方法(详细重点)

    方式一:

    为对象初始化自己独有的特征:

    class People:

      country = "China"

      x = 1

      def run(self):

        print("——>",self)

    实例化出三个空对象:

    obj1 = People()

    obj2 = People()

    obj3 = People()

    为对象定制自己独有的特征:

    obj1.name = 'alan'

    obj1.age = 18

    obj1.sex = 'male'

    obj2.name = 'alex'

    obj2.age = 38

    obj2.sex = 'male'

    obj3.name = 'oven'

    obj3.age = 28

    obj3.sex = 'male'

    print(obj1.__dict__)

    print(obj2.__dict__)

    print(obj3.__dict__)

    print(People.__dict__)

    方式二:

    为对象初始化自己独有的特征:

    class People:

      country = ‘China'

      x= 1

      def run(self):

        print("——>",self)

    实例化出三个对象:

    obj1 = People()

    obj2 = People()

    obj3 = People()

    为对象定制自己独有的特性:

    def chu_shi_hua(obj,x,y,z):

      obj.name = x

      obj.age = y

      obj.sex = z

    chu_shi_hua(obj,'alan',18,'male')

    chu_shi_hua(obj,'alex',38,'male')

    chu_shi_hua(obj,'oven',28,'male')

    方式三:

    为对象初始化自己独有的特征:

    class People:

      country = 'China'

      x= 1

      def chu_shi_hua(obj,x,y,z):

        obj.name = x

        obj.age = y

        obj.sex = z

      def run(self):

        print('——',self)

    obj1 = people()

    People.chu_shi_hua(obj1,'alan',18,'male')

    obj2 = people()

    People.chu_shi_hua(obj2,'alex',38,'male')

    obj3 = people()

    People.chu_shi_hua(obj3,'oven',28,'male')

     __init__方法 强调:

      1.该方法内可以有任意的代码

      2.一定不能有返回值

    三、属性查找

    类的两种属性:数据属性和函数属性

    1.类的数据属性是所有对象共享的

    2.类的函数属性时绑定给对象用的

    四.绑定到对象的方法的特殊之处:

    类中定义的函数(没有被任何装饰器装饰的)是类的函数属性,类可以使用,但必须遵循函数的参数规则,

    有几个参数需要传几个参数

    类中定义的函数(没有被任何装饰器装饰的),其实主要是给对象使用的,而且是绑定到对象的。只要绑定给了不同的对象,就意味着是不同的绑定方法

    强调:绑定到对象的方法特殊之处就是,绑定给谁就有谁来调用,谁调用就将‘谁’本身当作第一个参数传给方法,也就是自动传值(方法和__init__是一样的道理)

    注意:绑定到对象方法的这种自动传值的特征,决定了在类中定义的函数都默认写一个参数self,self可以是任意名字,但约定俗成的写self。(self英文翻译就是自己的意思)

  • 相关阅读:
    vim编辑器和bash算术运算入门
    vim编辑器
    egrep及文本处理工具
    grep与基本正则表达式
    bash脚本编程基础及配置文件
    博客开通了
    测试用例考虑因素
    地图测试点的总结
    app测试的case点(2)
    App 99.9%稳定
  • 原文地址:https://www.cnblogs.com/zhangzhechun/p/10453508.html
Copyright © 2011-2022 走看看