• 021 面向对象 一


    概述

    OOP 思想

    • 接触到任意一个任务,首先想到的是任务中的世界的构成(模型化)

    几个名词

    名词 释义
    OO 面向对象
    OOA 面向对象分析
    OOD 面向对象设计
    OOI 面向对象实现
    OOP 面向对象编程
    • 面向对象的实现过程:OOA > OOD > OOI

    类与对象

    • 概念

      术语 概念
      抽象名词,代表一个集合,共性的事物
      对象 具象的事物,单个个体
    • 关系

      术语 释义
      抽象,代表一大类事物
      对象 具象,代表某一类事物的某一个个体
    • 类的两个内容

      术语 释义
      属性(变量) 表明事物的特征
      成员方法(函数) 表明事物功能或动作

    类的基本实现

    类的命名

    • 遵守变量命名的规范
    • 使用大驼峰,形如 YorkFish
    • 尽量避开系统命名

    类的声明

    • 必须用 class 关键字
    • 类由“属性”和“方法”构成,不允许出现别的
    • 定义成员属性可以直接使用变量赋值,如果没有值,允许使用 None

    类的实例化

    class Person:
        pass
    
    
    york = Person()	 # 实例化了一个对象
    

    类与成员

    访问对象成员

    class Person:
        def __init__(self, age=18):
            self.age = age
    
        def learn(self, lesson="Python"):
            print("I am learning %s." % lesson)
    
    
    york = Person()
    print(york.age)  # 使用点操作符访问对象
    york.learn()
    

    检查所有成员

    • 通过默认内置变量检查

    检查类的所有成员

    class Person:
        pass
    
    
    print(Person.__dict__)
    

    检查对象的所有成员

    class Person:
        pass
    
    
    york = Person()
    print(york.__dict__)
    

    成员分析

    • “类”与“对象”都可以存储成员,成员可以归“类”所有,也可以归“对象”所有

    • “类”存储成员时使用的是与“类”关联的一个“对象”

    • “对象”访问一个成员时

      • 如果“对象”中没有该成员,尝试访问“类”中的同名成员
      • 如果“对象”中有此成员,一定使用“对象”中的成员
    • 创建“对象”时,“类”中的成员不会放入对象当中,而是得到一个空对象,没有成员

    • 通过“对象”对“类”中成员重新赋值,或者通过“对象”添加成员时,对应成员会保存在对象中,而不会修改类成员

    self

    • self 在对象的方法中表示当前对象本身
      • 通过对象调用一个方法时,该对象会将“自己”自动传至当前方法的第一个参数中
      • 即,哪个对象调用的方法,方法内的 self 就是指向哪个对象的引用
    • self 并不是关键字
      • 它只是一个用于接收对象的普通参数
      • 可以用任何一个普通变量名代替,但不推荐
    • 方法中有 self 形参的方法称为非绑定类的方法,可以通过对象访问
    • 方法中没有 self 的是绑定类的方法,只能通过类访问
    • 使用类访问绑定类的方法时,如果类方法中需要访问当前类的成员,可以通过 __class__.成员名 来访问
  • 相关阅读:
    uvm_misc——杂货铺(miscellaneous)
    23种设计模式及其应用场景
    Hadoop TextInputFormat源码分析
    java字符串替换函数高效实现
    hadoop HA 之 QJM
    中文分词词性对照表
    计算两个字符串编辑距离
    java 图片处理
    zookeeper数据迁移
    正则表达式
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10664177.html
Copyright © 2020-2023  润新知