面向对象
1.什么是面向对象?
(白话)根据模板(创建一个类)并实例化,这个思路就是面向对象
2.使用面向对象编程的好处
1.可以重复使用(实例化类)
2.易于修改(只需要修改类的模板)
3.面向对象的特点
1.封装
2.继承
3.多态
4.面向对象的案例(类名首字母必须大写)
二、面向对象特点、封装、多态、继承
2.1什么是封装
将生活中的实物,创建一个类,然后实例化类就叫封装
创建类,然后实例化类也叫封装
1.1面向对象有一个私有方法
定义一个函数,在函数名前加上__:__函数名
私有方法作用:只能在函数内使用
应用场景:后面的案例会讲到
私有方法的使用:
1.2面向对象的公有方法
公有方法:在任意地方都可以被使用
1.3如何区别公有和私有
看函数名前是否加了__加了就是私有,否则就是公有
2.2什么是继承
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
def __user(self):
return self.ml * 105
def func(self):
a = self.__user()
print(f"汽车的最大马力是{a}")
汽车 = Demo('一代奔驰', "轿车", 10000, 'red', 1.5)
汽车.func()
# 继承
class Demo2(Demo):
def func2(self):
print('升起尾翼飘逸')
汽车2 = Demo2('二代奔驰', '轿车', 10000, 'white', 2.0)
汽车2.func()
汽车2.func2()
2.3什么是多态
多种状态,即完成某个行为时,使用不同的对象会得到不同的状态。
应用场景比较少,做了解
# 多态
# 父类
class A():
def sound(self):
print('我是父类a,hhh')
class Cat(A):
def sound(self):
print('我是子类Cat,喵喵喵')
class Dog(A):
def sound(self):
print('我是子类Dog,汪汪汪')
cat = Cat()
dog = Dog()
A = A()
def admin(x):
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
# 查询当前余额
def func2(self):
print(f'你当前的账户余额为:{self.money}')
# 取钱
def func3(self, data = 0):
'''
如果 当前账户余额 小于 要取的金额 就不能取钱
:param data: 余额
'''
if self.money < data:
print('你当前的账户余额不足')
else:
self.money -= data
print('取款成功')
# 实例化一个类
first = Demo('258369147', 0)
# 存钱
e = int(input('存入的金额为:'))
first.func(e)
# 查询
first.func2()
# 取钱
q = int(input('取走的金额为:'))
first.func3(q)
# 查询
first.func2()