zoukankan      html  css  js  c++  java
  • 面向对象阶段复习

    面向对象阶段复习

    一、类,对象,属性方法调用

    class 类名(父类1,父类2):
        静态属性 = ''   # 静态属性,也叫类属性
        def __init__(self):  # 初始化方法
            self.name = 'aa'
        def func(self):  # 动态属性 方法
            print(self.age)  # 这里的age可以是实例化后,通过对象.age = xxx 的方式添加的属性
    对象 = 类名()  # 实例化
    对象.方法名()  # 调用类里面的方法
    对象.属性名  # 调用类里面的属性 对象即类里面的self
    对象.name  # 调用name属性
    对象.age = 18  # 添加属性,与前面的print(self.age)相应
    对象.func() # 实际上也等于类名.func(对象)

    二、组合:表达什么有什么的问题,一个类都属性是另一个类的对象

    # 组合:class 里面有 course
    class Course:
        def __init__(self,name,price,period):
            self.name = name
            self.price = price
            self.period = period
    
    class Class:
        def __init__(self,name,course):
            self.name = name
            self.course = course  # Class类的属性course
            #self.course_name = 'python'  # 赋值
    
    python = Course('python xxx',18000,'6 months')  # 实例化对象  Course类的实例化对象
    pys1 = Class('pys_1',python)  # 实例化对象,把python这个对像传入course中,即Course的相关属性也对应传入
    print(pys1.course.name)  # 可以通过pys1查看到course的信息 组合的功能体现在这里
    python.name = 'python sss'  # 可以通过组合,修改一些参数,比较简单
    print(pys1.course.name)

    运行结果:

    python xxx
    python sss

    命名空间:类和对象分别存在不同的命名空间中,互不影响

    三、面向对象的三大特征:继承,多态,封装

    1、继承

    • 单继承:
    •   父类(超类,基类)
    •   子类(派生类):派生方法和派生属性
    •   子类的对象在调用方法和属性:先用自己,自己没有采用父类的
    • 多继承:
    •   不会超过三个父类,最好不要超过三层
    •   如果子类自己有用自己的,如果没有就用距离子类最近的那个父类的方法
    •   抽象类和接口类
    •   经典类和新式类,继承规则不同,深度优先和广度优先原则(面试的时候有可能会问到,平时用不到)
    • super只能在python3中使用 mro,是根据mro广度优先顺序找上一个类

    2、多态(面试)

    • 多态和鸭子类下

    3、封装(面试)

    •   私有的
    •   __m名字
    •   只能在类的内部调用,子类都无法继承
    •   三个装饰器“
    •     @property    规范,与@name.setterj结合用可以做出一些设置
    •     @staticmethod
    •     @classmethod   当一个方法只使用了类的静态变量时,就给这个方法加上@classmethod装饰器,默认传cls参数

     

  • 相关阅读:
    Java基本数据类型
    Java入门
    JavaSE概述
    ORACLE中的自治事务
    JDWP Transport dt socket failed to initialize
    jinfo命令 Java Configuration Info
    mysql的bind-address设置为127 0 0 1,通过localhost连接访问不了
    与MQ通讯的完整JAVA程序
    Hadoop入门进阶步步高(三)-配置Hadoop
    GC Root
  • 原文地址:https://www.cnblogs.com/wxm422562/p/11143135.html
Copyright © 2011-2022 走看看