zoukankan      html  css  js  c++  java
  • 面向对象编程和类

    面向对象编程

    面向过程编程与面向对象编程的区别:
    面向过程编程使复杂的问题简单化,流水线操作
    优点:复杂的问题简单化
    能准确预知结果
    缺点:可拓展性差,灵活性差,重用性差
    面向对象编程,让对象去解决问题
    优点:可拓展性好
    灵活性好
    重用性好
    缺点:程序复杂程度提高
    无法准确预知结果

    类和对象

    类和对象:
        类:就是一系列具有相同特征,行为相同的对象集合体
        对象:具体存在的某个事物,具有自己独特的特征和行为
    
    
    类和对象的关系:
        类包含一系列对象
        对象属于类
        在程序中先有类再有对象
    
    
    创建类的语法
    class 类名: # class为关键字
        # 类中的内容 描述类的功能和属性
        # 描述属性用变量
        # 描述功能用函数
    
    
    创建对象的语法
    class Person:
        pass
    
    # 创建对象
    p = Person()
    
    
    描述属性的写法:
    
    属性可以写在类中 
    类中的属性,是所有对象公共的 
    
    也可以写在对象中 
    对象中的属性,是每个对象独特的(不一样的)
    
    
    如果类中和对象中存在同样的属性,先访问对象 如果没有在访问类 
    
    
    练习: 描述一个老师类 需要包含 一个公共属性和 一个独特的属性 
    
    class Teacher:
        school = "oldboy"
        
    t1 = Teacher()
    t1.name = "jack"
    t1.age = 28

    属性的增删改查

    增加属性 
    对象变量名称.属性名称 = 属性值
    
    删除属性
    del 对象的变量名称.属性名称 
    
    修改 
    对象.属性 = 新的值 
    
    查看属性  访问的是对象的所有属性 
    print(对象.__dict__)
    
    访问对象的类信息
    print(对象.__class__)

    init方法

    叫做初始化方法,本质上就是一个函数 
    
    特点1: 当实例化 对象时,会自动执行init方法
    
    特点2:会自动将对象作为第一个参数传入,参数名称位self ,self可以是别的名字,但不建议改
    
    功能:用户给对象赋初始值  
    
    class Dog:
        def __init__(self,kind,color,age):
            self.kind = kind
            self.color = color
            self.age = age
    
    d1 = Dog("二哈","黑白",1)
    d1 = Dog("泰迪","棕色",2)
    
    
    注意:该函数不能有任何返回值/.... 只能是None  规定如此..

    绑定方法

    ## 对象的绑定方法
    
    默认情况下类中的方法都是对象绑定方法 
    
    其特殊之处在于,
    
    当使用对象调用该函数时会自动传入对象本身,作为第一个参数  
    
    当使用类名来调用时他就是一个普通函数,有几个参数就得传几个参数 
    
    class Student:
        
        def __init__(self,name):
            self.name = name
         
        def say_hi(self):
            print("hello my name is %s" % self.name)
    
    
    
    ## 类绑定方法
    
    类绑定方法用@classmethod来装饰 
    
    特殊之处:不管用类还是对象调用,都会自动传入类本身,作为第一个参数 
    
    
    
    什么时候绑定给对象:当函数逻辑需要访问对象中的数据时
    
    什么时候绑定给类:当函数逻辑需要访问类中的数据时
    
    
    # 非绑定方法
    
    或叫做静态方法,就是即不需访问类的数据,.也不需要访问对象的数据 
    
    语法:@staticmethod 
    
    不常用
  • 相关阅读:
    Delphi / C++ Builder 使用 UDT ( UDP-based Data Transfer ) 4.11
    STUN: NAT 类型检测方法
    udt nat traverse
    UDT: Breaking the Data Transfer Bottleneck
    Freescale OSBDM JM60仿真器
    How To: Perl TCP / UDP Socket Programming using IO::Socket::INET
    NAT类型与穿透 及 STUN TURN 协议
    根据PID和VID得到USB转串口的串口号
    pic/at89c2051 programmer
    IC开短路测试(open_short_test),编程器测试接触不良、开短路
  • 原文地址:https://www.cnblogs.com/asdaa/p/11240753.html
Copyright © 2011-2022 走看看