赞
踩
根据模板(创建一个类)+ 实例化一个类 == 面向对象
将生活中的实物 创建一个类并实例化类 就叫封装 (概念)
创建类 + 实例化 = 封装
1.面向对象的私有方法
私有方法:定义一个函数 在函数名前面加上 __函数名
私有方法作用:只能在函数内使用
应用场景: 后面的案例会讲到
私有方法的使用:
self.__name()
2.面向对象的公有方法
公有方法:在任意地方 都可以被使用
3.如何区别公有方法和私有方法
看函数名前是否加了__ 。加了就是私有 没加就是公有
1.什么是继承?
从字面上来讲:儿子继承父亲的基因和财产 子承父业
在我们类中什么叫继承?:子类继承父类的成员属性 和 成员方法
如果说子类想继承父类 就把父类的名字写到子类函数名的括号中
继承:不管公有还是私有 都会被继承
- # 写一个类 父类
- # 汽车 1代汽车 2代汽车 3代汽车 4代汽车
- class Demo():
- # 初始化
- def __init__(self, name, typename, money, color, ml):
- # 汽车的名字
- self.name = name
- # 汽车的类型
- self.typename = typename
- # 汽车的价格
- self.money = money
- # 汽车的颜色
- self.color = color
- # 汽车的发动机
- self.ml = ml
-
- # 私有方法 __ 算出汽车的一个最大马力 105 不要管 这个算术准不准 自己知道 别人 私有方法
- def __user(self):
- # 计算发动机最大马力
- return self.ml * 105
-
- # 公有方法
- def func(self):
- # 拿到最大的马力 并 赋值给a
- a = self.__user()
- print(f'汽车的最大马力{a},目前正在马路上狂奔')
-
-
- # 图纸已经设计完了 只需要通过这个图纸批量造汽车
- 汽车 = Demo('一代奔驰', '轿车', 10000, '红色', 1.5)
-
- 汽车.func()
-
-
- # 要对类进行一个功能添加的话 这个我们就可以使用继承
-
- # 子类 如果说子类想继承父类 就把父类的名字写到子类函数名的括号中
- class Demo2(Demo):
- # 原基础上添加一个新的功能
- def func2(self):
- print('升起尾翼飘逸')
-
-
- # 实例化子类 一定也要把父类的参数带上 继承我们父类的属性和方法
- 第二代汽车 = Demo2('奔驰2代', '轿车', 10000, '白色', 2.0)
-
- # 如果访问父类的属性和方法 我们父类的方法可以被字类调用
- 第二代汽车.func()
- # 也可以使用 最新的功能
- 第二代汽车.func2()
-
-
-
-
-

多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。
- # 多态
- # 父类
- class A:
- # 定义了一个方法 公有方法
- def sound(self):
- print('我是父类a')
-
-
- # 子类 在子类函数名中 加入父类的名字
- class Cat(A):
- # 定义了一个方法 公有方法
- def sound(self):
- print('我是字类Cat, 喵喵喵')
-
-
- # 子类 在子类函数名中 加入父类的名字
- class Dog(A):
- # 定义了一个方法 公有方法
- def sound(self):
- print('我是子类Dog, 汪汪汪')
-
-
- # 实例化三个类
- A = A()
- cat = Cat()
- dog = Dog()
-
-
- # 函数的名字admin
- def admin(x):
- # x就是这个类 类中有一个方法叫sound
- x.sound()
-
-
- admin(cat)
- admin(dog)
- admin(A)

模拟一个应用场景:
模拟银行账户:使用类来模拟银行账户,每个账户可以存款、取款、查询余额等操作
- # 模拟银行账户:使用类来模拟银行账户,每个账户可以存款、取款、查询余额等操作
- # 因为很多人都要来查询账户 余额 存款 取款
- # 很多人 以面向对象的编程思路 来写这个案例
- class Demo():
- # 初始化类
- def __init__(self, value, money):
- # 卡号
- self.value = value
- # 余额
- self.money = money
-
- # 存钱
- def func(self, data=0):
- # 拿到我们的余额 加上 我们要存的钱数
- self.money += data
- print('存钱成功')
-
- # 查询当前余额
- def func2(self):
- print(f'你当前的账户余额为:{self.money}')
-
- # 取钱 设置一个默认值 如果说没有传参 就不会报错
- def func3(self, data=0):
- # 如果说 当前账户余额 小于 你要取钱的金额 你就不能取
- if self.money < data:
- print('你当前账户余额不足')
- else:
- # 拿当前的余额 减去 取钱的金额data
- self.money -= data
- print('取款成功')
-
-
- # 实例化一个类
-
- 张三 = Demo('123456', 100000)
- # 查询余额
- 张三.func2()
-
- 李四 = Demo('123456', 100)
- # 查询余额
- 李四.func2()
- # 存款
- 李四.func(100)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。