python 面向对象【第一节】

面向对象【第一节】

一、什么是面向对象

  1. 面向过程:强调以步骤为基础完成各种操作
  2. 面向对象:强调以对象为基础完成各种操作,是基于面向过程的
  • 更符合人们的思考习惯
  • 复杂问题简单化
  • 从执行者变成指挥者

洗衣服,如果自己动手洗,是执行者,要做很多步去把衣服洗好,这就是面向过程。
我让洗衣机洗,我是指挥者,面向对象,对象是洗衣机.

二、什么是封装,继承,多态

(一)封装

通过外部接口直接调用,隐藏对象的属性和细节

(二)继承

子类继承父类的属性和方法,使得子类对象(实例)具有父类的特征和行为。

  • 项目经理:
    属性:姓名,工资,奖金
    行为:工作
  • 程序员:
    属性:姓名,工资
    行为:工作
  • 员工:
    属性:姓名,工资
    行为:工作
  • 项目经理和程序员都继承自员工

(三)多态

同一个函数,接收不同的对象,有不同的效果

三、什么是类、什么是对象

1.概念

  1. 先写类,再创建对象,再用对象干活。
  2. 类是抽象的,对象是具体的。

银行卡是类,因为有很多银行卡,没有指定哪一个。
对面马路上跑的车是对象,因为指定了对面马路的车,而不是所有

2.定义类格式(代码)

class类名:#属性(属性和之前定义变量一样)#行为(行为和之前定义函数一样)
  • 例:定义汽车会跑
classCar:#属性先不写#行为(定义函数)defrun(self):print("汽车会跑。。。")

3.创建对象及访问类中行为

  1. 上面例子中的代码还不能运行,要向其中补充对象。
  2. 对象的基本语法格式

python对象实例化:对象名 = 类()
调用方法:对象名.方法名()
-----通过对象名.() 的形式,调用类中函数(run)

  1. 补充后的代码
classCar:#属性先不写#行为(定义函数)defrun(self):print("汽车会跑。。。")car=Car()car.run()

4.self关键字

  1. 定义
    self是python内置的关键字,用于指向对象实例本身,也就是说当前哪个对象调用,self就代表谁。

  2. 上面代码中的 self 就是 car(car的地址传给了self)

5.类内和类外调用函数

1. 在类外访问类中的行为,需要通过“ 对象名.”的方式访问
2. 在类内访问类中的行为,需要通过 “self.” 的方式访问(类内的任何对象都是用 self 代表的,所以直接写self)

  • 代码如下
classCar:defrun(self):print(f"{self}汽车会跑。。。")defwork(self):#work函数,在其内部调用runprint(f"我是work值,我的self值:{self}")self.run()#在类外访问Car类的行为(在外访问函数)c1=Car()print(f"c1对象:{c1}")c1.run()c1.work()#再次创建对象c2=Car()print(f"c2对象:{c2}")c2.run()c2.work()
  • 代码输出如下
  • 代码运行结果解析

1. 外面的c1先调用,执行 print(f"c1对象:{c1}")
2. 先调用的run,所以先执行run,输出run下面的print
3. 之后调用work,先执行work下面的print,再执行self.run(),也就是再执行一遍run下面的print
4. c2也同样来一遍