zoukankan      html  css  js  c++  java
  • 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__.成员名 来访问
  • 相关阅读:
    Swift3 重写一个带占位符的textView
    Swift3 使用系统UIAlertView方法做吐司效果
    Swift3 页面顶部实现拉伸效果代码
    Swift3 倒计时按钮扩展
    iOS 获取当前对象所在的VC
    SpringBoot在IDEA下使用JPA
    hibernate 异常a different object with the same identifier value was already associated with the session
    SpringCloud IDEA 教学 番外篇 后台运行Eureka服务注册中心
    SpringCloud IDEA 教学 (五) 断路器控制台(HystrixDashboard)
    SpringCloud IDEA 教学 (四) 断路器(Hystrix)
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10664177.html
Copyright © 2011-2022 走看看