当前位置:   article > 正文

python-面向对象_python面向对象

python面向对象

一、什么是面向对象

1.什么是面向对象(概念)

根据模板(创建一个类)+ 实例化一个类 == 面向对象

2.面向对象的好处

  1. 可重复使用(实例化类)
  2. 容易修改(只用修改类的模板)

3.面向对象的特点

  1. 封装 
  2. 继承
  3. 多态

4.类名首字母必须大写

5.面向对象的案例

二、面向对象特点 封装、多态、继承 

1.什么是封装

将生活中的实物 创建一个类并实例化类 就叫封装 (概念)

创建类 + 实例化 = 封装

1.面向对象的私有方法

私有方法:定义一个函数 在函数名前面加上 __函数名

私有方法作用:只能在函数内使用

应用场景: 后面的案例会讲到

私有方法的使用:

self.__name()

2.面向对象的公有方法

公有方法:在任意地方 都可以被使用

3.如何区别公有方法和私有方法

看函数名前是否加了__ 。加了就是私有 没加就是公有

2.什么是继承

1.什么是继承?

从字面上来讲:儿子继承父亲的基因和财产 子承父业

在我们类中什么叫继承?:子类继承父类的成员属性 和 成员方法

如果说子类想继承父类 就把父类的名字写到子类函数名的括号中

继承:不管公有还是私有 都会被继承

  1. # 写一个类 父类
  2. # 汽车 1代汽车 2代汽车 3代汽车 4代汽车
  3. class Demo():
  4. # 初始化
  5. def __init__(self, name, typename, money, color, ml):
  6. # 汽车的名字
  7. self.name = name
  8. # 汽车的类型
  9. self.typename = typename
  10. # 汽车的价格
  11. self.money = money
  12. # 汽车的颜色
  13. self.color = color
  14. # 汽车的发动机
  15. self.ml = ml
  16. # 私有方法 __ 算出汽车的一个最大马力 105 不要管 这个算术准不准 自己知道 别人 私有方法
  17. def __user(self):
  18. # 计算发动机最大马力
  19. return self.ml * 105
  20. # 公有方法
  21. def func(self):
  22. # 拿到最大的马力 并 赋值给a
  23. a = self.__user()
  24. print(f'汽车的最大马力{a},目前正在马路上狂奔')
  25. # 图纸已经设计完了 只需要通过这个图纸批量造汽车
  26. 汽车 = Demo('一代奔驰', '轿车', 10000, '红色', 1.5)
  27. 汽车.func()
  28. # 要对类进行一个功能添加的话 这个我们就可以使用继承
  29. # 子类 如果说子类想继承父类 就把父类的名字写到子类函数名的括号中
  30. class Demo2(Demo):
  31. # 原基础上添加一个新的功能
  32. def func2(self):
  33. print('升起尾翼飘逸')
  34. # 实例化子类 一定也要把父类的参数带上 继承我们父类的属性和方法
  35. 第二代汽车 = Demo2('奔驰2代', '轿车', 10000, '白色', 2.0)
  36. # 如果访问父类的属性和方法 我们父类的方法可以被字类调用
  37. 第二代汽车.func()
  38. # 也可以使用 最新的功能
  39. 第二代汽车.func2()

3.什么是多态?

多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。

  1. # 多态
  2. # 父类
  3. class A:
  4. # 定义了一个方法 公有方法
  5. def sound(self):
  6. print('我是父类a')
  7. # 子类 在子类函数名中 加入父类的名字
  8. class Cat(A):
  9. # 定义了一个方法 公有方法
  10. def sound(self):
  11. print('我是字类Cat, 喵喵喵')
  12. # 子类 在子类函数名中 加入父类的名字
  13. class Dog(A):
  14. # 定义了一个方法 公有方法
  15. def sound(self):
  16. print('我是子类Dog, 汪汪汪')
  17. # 实例化三个类
  18. A = A()
  19. cat = Cat()
  20. dog = Dog()
  21. # 函数的名字admin
  22. def admin(x):
  23. # x就是这个类 类中有一个方法叫sound
  24. x.sound()
  25. admin(cat)
  26. admin(dog)
  27. admin(A)

实战案例(开发的应用场景)

模拟一个应用场景:

模拟银行账户:使用类来模拟银行账户,每个账户可以存款、取款、查询余额等操作

  1. # 模拟银行账户:使用类来模拟银行账户,每个账户可以存款、取款、查询余额等操作
  2. # 因为很多人都要来查询账户 余额 存款 取款
  3. # 很多人 以面向对象的编程思路 来写这个案例
  4. class Demo():
  5. # 初始化类
  6. def __init__(self, value, money):
  7. # 卡号
  8. self.value = value
  9. # 余额
  10. self.money = money
  11. # 存钱
  12. def func(self, data=0):
  13. # 拿到我们的余额 加上 我们要存的钱数
  14. self.money += data
  15. print('存钱成功')
  16. # 查询当前余额
  17. def func2(self):
  18. print(f'你当前的账户余额为:{self.money}')
  19. # 取钱 设置一个默认值 如果说没有传参 就不会报错
  20. def func3(self, data=0):
  21. # 如果说 当前账户余额 小于 你要取钱的金额 你就不能取
  22. if self.money < data:
  23. print('你当前账户余额不足')
  24. else:
  25. # 拿当前的余额 减去 取钱的金额data
  26. self.money -= data
  27. print('取款成功')
  28. # 实例化一个类
  29. 张三 = Demo('123456', 100000)
  30. # 查询余额
  31. 张三.func2()
  32. 李四 = Demo('123456', 100)
  33. # 查询余额
  34. 李四.func2()
  35. # 存款
  36. 李四.func(100)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/563484
推荐阅读
相关标签
  

闽ICP备14008679号