面向对象(特点)

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

        白话:根据模版(创建一个类并实例化类)这个思路就叫面向对象

2、使用面向对象的好处

        2.1、可以重复使用(实例化类)

        2.2、容易修改(修改类的模块)

3、类名首字母必须大写

4、面向对象的案例:

class Demo:
    # 成员变量
    name = None

    # 成员方法
    def user(self):
        print(f'我是{self.name},我的功能是:滴 滴 滴 起床啦')
# 创建实例化类
haha = Demo()
# 给闹钟赋值,取个名字
haha.name = '闹钟001'
# 调用闹钟的方法
haha.user()

5、面向对象的特点

        3.1、封装

        3.2、继承

        3.3、多态

5.1、什么是封装(概念)

        将生活中的实物,创建一个类并实例化类就叫封装

        创建类 + 实例化类

# 创建一个类
class Demo:
    # 成员变量
    name = None
    age = None

    # 成员方法
    def user(self):
        print(f'我是{self.name},今年{self.age}岁')


# 创建实例化类
a = Demo()
# 给成员变量赋值,
a.name = '木易'
a.age = 18
# 调用成员方法
a.user()

面向对象有个私有方法

        私有方法的写法:定义一个函数,在函数名前面加上“ __”

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

    def __user(self):

面向对象的公有方法

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

    def func(self):

5.2、什么是继承

        从字面意思来讲:子承父业,子类继承父类成员属性成员方法

子类继承父类的写法:将父类名字放子类括号中,不管公有还是私有 都可被继承

class Demo2(Demo):

案例 :

# 创建一个类 —— 汽车图纸
class Demo():
    def __init__(self, name, type, money, color, ml):
        self.name = name  # 汽车的的名字
        self.type = type  # 汽车的类型
        self.money = money  # 汽车的价格
        self.color = color  # 汽车的颜色
        self.ml = ml  # 汽车的发动机
        print(f'汽车的名字:{name}, 汽车的类型:{type}, 汽车的价格:{money}, 汽车的颜色:{color}')

    # 定义一个私有方法,通过发动机型号计算汽车的马力
    def __user(self):
        return self.ml * 150

    # 定义一个公有方法,打印出汽车的最大马力
    def func(self):
        self.__user()
        print(f'汽车的最大马力:{self.__user()}')


# 实例化类 —— 建立汽车叫 奥迪
aodi = Demo('奥迪A6', '轿跑', 400000, '红色', 1.8)
# 调用方法 func
aodi.func()


# 继承
class Demo2(Demo):
    # 在原有的基础上添加一个新的功能
    def func2(self):
        print('加尾翼')


# 根据类 —— 图纸 新建一辆汽车
aodi = Demo2('奥迪A8', '轿车', 1000000, '白色', 2.0)
# 调用父类方法
aodi.func()
# 调用子类方法
aodi.func2()

5.3、什么是多态

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


# 定义一个父类
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(func):
    # 使用函数的方法
    func.sound()


admin(A)
admin(cat)
admin(dog)

# 这样一个过程就叫多态
# 我们在调用函数的时候 传入不同的类 可以输出不同的结果 多态

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

模拟一个银行账户:每个账户都可以进行查询余额,取钱,存钱

# 模拟一个银行账户:每个账户都可以进行查询余额,取钱,存钱
class Demo:
    # 初始化这个类
    def __init__(self, value, money):
        # 卡号
        self.value = value
        # 余额
        self.money = money

    # 定义一个方法 —— 存钱
    def func(self, data=0):
        # 拿到我们的余额加上要存的余额
        self.money += data
        print(f'存款成功,存款金额:{data}')

    # 定义一个方法 —— 查询当前余额
    def func2(self):
        print(f'当前账户余额:{self.money}')

    # 定义一个方法 —— 取钱
    def func3(self, data=0):
        # 如果取款金额大于当前余额,
        if self.money < data:
            print('当前账户余额不足')
        else:
            # 拿到当前余额 减去 取出余额
            self.money -= data
            print(f'取款成功,取款金额:{data}')


# 实例化类
木易 = Demo('123456789', 100000)
# 查询账户余额
木易.func2()
# 存款金额
木易.func(10000)
# 查询当前余额
木易.func2()
# 取出金额
木易.func3(50000)
# 查询当前余额
木易.func2()
print('----------------------')
zhangsan = Demo('987654321', 500000)
zhangsan.func2()
zhangsan.func(100000)
zhangsan.func2()
zhangsan.func3(500000)
zhangsan.func2()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值