03_面向对象_day01

  1. 面向对象的简称?
    面向对象编程 —— Object Oriented Programming 简写 OOP,是一种编程思想或者方式
  2. 面向对象和面向过程的区别?
    面向过程是早期的一个编程思想,所有的步骤从头到尾逐步实现,把某些功能独立的代码块封装成函数,然后顺序的调用不同的函数,注重步骤与过程,不注重职责分工,适合开发简单的项目。
    面向对象相比函数是一个更大的封装,面向对象注重对象和职责,不同的对象承担不同的职责,适合开发比较复杂的项目。
  3. 类和对象的概念?
    类和对象是面向对象的两大核心概念,
    类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用。就好比图纸或者模板,根据这个模板可以创建很多个对象
    对象是由类创建出来的一个具体存在,可以直接使用。
  4. 类和对象的关系?
    类是模板,对象是根据类这个模板创建出来的,应该 先有类,再有对象
    类只有一个,而对象可以有很多个,不同的对象之间属性可能会各不相同
    类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多,也不可能少
  5. 属性和方法是什么?
    对对象的特征描述,通常可以定义成属性
    对象具有的行为(动词),通常可以定义成方法
  6. 如何定义类并创建对象?
    class 类名:
    def 方法1(self, 参数列表):
    pass
    类名符合大驼峰命名,方法第一个参数必须是self,self 就表示 当前调用方法的对象自己在方法内部,可以通过 self. 访问对象的属性,也可以通过 self. 调用其他的对象方法
    创建一个对象如下:
    对象变量 = 类名() 自动分配内存空间,自动初始化方法(定义属性)
  7. init()方法的作用
    初始化方法,在对象创建的时候会自动执行,主要用来定义类的属性
  8. str()方法的作用
    返回对象的描述信息,print 函数输出对象变量时,能够打印自定义的内容,必须返回字符串
  9. del()方法的作用
    对象被从内存中销毁前,会被自动调用
  10. 面向对象的三大特点
    封装、继承、多态
  11. 如何理解面向对象的封装?
    面向对象编程的第一步,就是要把属性和方法封装到类中,外界使用类创建对象,然后让对象调用方法,对象方法的细节都封装在类的内部。
    03_面向对象_day02
  12. 私有属性、私有方法;伪私有属性和方法
    私有属性:对象不希望公开的属性,语法是在属性前面加上属性名
    私有方法:对象不希望公开的方法,语法是在方法前面加上
    方法名
    伪私有属性和方法是指在Python中并没有真正意义上的私有,而是把属性或者方法名前面加上了_类名,可以通过_类名__属性名的形式访问,但是不推荐。
  13. 继承的作用,以及语法
    继承实现了代码的重用,子类可以拥有父类的所有方法和属性。
    class 子类名(父类名):
    pass
    继承具有传递性,子类可以拥有所有与子类有继承关系的父类方法和属性。
  14. 重写父类方法,如何调用重写的父类方法?
    当父类的方法实现不能满足子类需求时,可以对方法进行重写(override)
    重写父类方法有两种情况:
    覆盖父类的方法,子类中创建一个跟父类同名的方法;
    对父类方法进行扩展,使用super().父类方法调用,另外可以通过父类名.父类方法()的形式去访问,但是不推荐。
  15. 多继承的概念以及语法
    多继承:子类可以拥有多个父类,并且具有所有父类的属性和方法。多个父类之间应尽量避免同名的方法和属性。
    class 子类名(父类名1, 父类名2...)
    pass
  16. 多态的概念。
    不同的子类对象调用相同的父类方法,产生不同的执行结果
    多态可以增加代码的灵活度,以继承和重写父类方法为前提,是调用方法的技巧,不会影响到类的内部设计