面向对象Object编程


面向对象Object编程
  什么是对象
    一切皆对象(世界万物是由对象组成的)
  什么是面向对象
    把一切看成对象(实例),对象和对象之间建立关联关系


什么是类:
  类是用来描述对象的工具,用类可以创建一个或多个同类对象
  用类可以创建自定义类型的对象


面向过程 面向数据流 编程,第一步干啥  第二步干啥 

面向对象是 面向过程的 高级抽象 

类的创建语法:
  class 类名(继承列表):
      "类文档字符串"
      实例方法(类内的函数定义 method)定义
      类变量(class variable) 定义
      类方法(@classmethod)   定义
      静态方法(@staticmethod) 定义


支持面向对象的语言:
  Python / C++/ C# / Java / Swift
  面向过程的语言
  C / Pascal / Delphi /Visual Basic
完全 用函数 编程 if else

简单的类的类的定义:


类的语法说明:
  类名必须为标识符(与变量名命名规则相同,建议首字母大写)
  类名实质上就是变量,它绑定一个类实例
  类的定义最后要加两个空行,用以告诉解释器,类的定义已经结束


实例的创建表达式
    类名([创建传参列表])
  作用:
    创建这个类的实例对象,并返回此对象的引用关系
实例说明:
  1. 实例有自己的作用域和名字空间,可以为该实例添加变量(实例变量/属性)
  2. 实例可以调用类中的方法
  3. 实例可以访问类的类变量



  类   |     对象      实例
class  |  object   instance




实例变量(也叫实例属性)
  python中,每个实例可以有自己的变量,每个实例变量有自己独立的作用域
用法:
  实例.变量名
例:
  dog1.kinds = "京巴"




实例方法
  - 每个对象所拥有的函数
语法:
  class 类名(继承列表):
      def 实例方法名(self, 形参1, 形参2, ...):
          "文档字符串"
          语句块
说明:
  实例方法的实质是函数,是定义在类内的函数
  实例方法的第一个参数代表调用这个方法的实例,一般命名为self
  实例方法属于类的属性






实例方法的调用语法 :
    实例.实例方法名(调用参数)
  或
    类名.实例方法名(实例, 调用参数)


构造方法
作用:
  在创建对象时初始化实例变量
语法格式:
  class 类名(继承列表):
      def __init__(self [, 参数列表]):
          语句块
  [] 代表内部内容可省略


说明:
  1. 构造方法名必须为 __init__ 不可必变
  2. 在一个类中只能有一个__init__构造方法起作用
  3. 构造方法会在实例创建时自动被调用,且将实例自身通过第一个参数self传入__init__方法
  4. 构造方法如果需要return 语句返回,只能返回None


预置实例属性
__dict__ 属性
  每个对象都有一个__dict__属性,此属性用于绑定一个存储此实例自身变量的字典


示例:


__class__ 属性:
  绑定创建此实例的类对象(类实例)
作用:
  可以借助于此属性来创建同类的实例
  可以借助于此属性来访问类变量


对象和字典的差别:



 
类变量:
  1. 是指在class 语句内定义的变量,此变量属于类,不属于此类的实例
  2. 类变量,可以通过该类直接访问
  3. 类变量,可以通过类的实例直接访问
  4.对象可以通过__class__属性间接访问类变量


语法:
   class 类名:
       类变量名 = 对象
       ......
示例:
  class Human: # 人类
      Home = "地球"  # 类变量
 


类的文档字符串
  class 类名:
     """ 此类的文档字符串"""
     ...


  类内的 __doc__ 属性用来绑定文档字符串




类内的__slots__ 列表
作用:
  限定一个类创建的实例只能有固定的实例变量(属性)
  不允许对象添加列表以外的实例变量
  防止用户因错写属性名而发生错误
说明:
  __slots__ 绑定一个字符串列表
  含有__slots__属性的类所创建的实例对象没有__dict__属性













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值