面向对象编程(OOP)

面向对象编程 Object-Oriented Programming(OOP)

OOA OOD OOP
分析 设计 编程

编程思想:
面向过程:
1) 分析出解决问题的步骤,然后逐步解决。
例如:筹办婚礼
1、发请柬(贴照片 设计邀请语 制作请柬 发送请柬)
2、宴席 (找厨师 购买食材 设计菜品 准备餐具 桌椅板凳)
3、婚礼仪式 (找主持人 设计仪式流程 有哪些环节)
2)公式:程序 = 算法 + 数据结构
3) 优点:所有环节、细节自己掌控
4)缺点:面面俱到 要考虑所有细节、工作量大

面向对象:

1) 指定解决问题的人,分配工作
例如:筹办婚礼
1、发请柬--->摄影公司 (对象)
2、宴席----->酒店(对象)
3、婚礼仪式->婚庆公司 (对象)
2)公式:程序 = 对象 + 交流(交互)
3)优点:分类解决问题 各司其职 、高复用

概念

类: 是抽象的概念,即人类社会里的类别(具有相同属性和行为的 视为 同类)
属性=数据 行为=方法
对象:类的具体实例,归属某个类别的个体
类是创建对象的“模板” 类里包括:个体的属性 和 个体的行为
就是 数据 和 方法
类:拥有相同属性和行为的对象分为一组,即为一个类

class person():
    money = '1亿'
    def run(self):
        print("今天跑步 5公里")
zgd = person()
zgd.run()
print(zgd.money)

单继承:

class shifu(): #师傅类
    def make_cake(self):
        print("独门配置 百年传承")
class tudi(shifu): #徒弟类
    pass
xiaojiu = tudi() #创建徒弟对象
xiaojiu.make_cake() #可以调用父类的方法

多继承:

class bb(): #爸爸类
    def car(self):
        print("BMW")
class mm(): #妈妈类
    def fly(self):
        print("私人飞机1架")
class erzi(bb,mm): #儿子类
    pass
daerzi = erzi() #创建儿子对象
#调用基类方法
daerzi.fly()
daerzi.car()

魔法方法:具体特殊功能的函数, 函数名都是事先定义好的

魔法方法 _ init _() #作用初始化对象,创建对象时默认调用

class person():

    def __init__(self):
        self.gender = 'boy'
        self.age = 1

    def myinfo(self,name):
        print(f"我叫{name} 今年{self.age} 是位{self.gender}")
    money = '1亿'
    def run(self):
        print("今天跑步 5公里")
zgd = person()
zgd.myinfo("zgd")

#可以传参的
class person():
def __init__(self,gender,age):
    self.gender = gender
    self.age = age
def myinfo(self,name):
    print(f"我叫{name} 今年{self.age} 是位{self.gender}")
money = '1亿'
def run(self):
    print("今天跑步 5公里")
wen = person("girl",20)
wen.myinfo("wen")

魔法方法 _ str _() #作用输出return 的返回值,默认输出对象的内存地址

wen = person("girl",20)
print(plj) #
[root@localhost ~]# python3 oop.py
<__main__.person object at 0x7fe8cf7ad400>
]# vim oop.py
class person():
    def __init__(self,gender,age):
        self.gender = gender
        self.age = age
    def __str__(self):
        return "我是person类的对象"
wen = person("girl",20)
print(wen)
:wq

[root@localhost ~]# python3 oop.py
我是person类的对象
[root@localhost ~]#

魔法方法 _ call _() 将实例当成函数来调用,执行此函数内的代码

vim oop.py
class person():
    def __init__(self,gender,age):
        self.gender = gender
        self.age = age
    def __call__(self):
        print(self.age,self.gender)
wen = person("girl",20)
wen()
:wq

[root@localhost ~]# python3 oop.py
20 girl
[root@localhost ~]#

魔法方法 _ del _() 删除对象时自动调用del() 方法

vim oop.py
class person():
    def __init__(self,gender,age):
        self.gender = gender
        self.age = age
    def __del__(self):
        print("对象被成功删除")
wen = person("girl",20)
del wen
:wq

[root@localhost ~]# python3 oop.py
对象被成功删除



作者:一个小运维
链接:https://www.jianshu.com/p/753e63b4c484

相关资源:

GitOps 初探 - Dcsdn 

rabbitmq入门和实战 - Dcsdn 

java 对Redis的导入和导出 - Dcsdn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值