面向的对象 一切接对象(将现实中所有的需求,数组等都可以抽象成程序中的对象) 面向对象:python,现有数据结构 再有算法 ooA:面向对象分析 ooT:面向对象测试 ooP:面向对象编程 面向对象三大特性 封装:类分装数据与操作方法 继承:子类继承并且拥有父类的数据与操作 多态:子类继承并且重写父类的方法 面向过程:c语言,先有算法 再有数据结构 按顺序执行,一个项目N多行代码直接构成 类:抽象的类型 人类 生物 电脑
举例说明:
1.python 中类的编写
class Person:
"""
抽象的人类
"""
def __init__(self):
"""
初始化函数:用于设置数据
"""
print("初始化函数执行了")
def __del__(self):
"""
清理函数
"""
print("清理函数执行了")
p1 = Person()
抽象人类:
class Person:
"""
抽象的人物
"""
def __init__(self, name):
"""
初始化函数:用于设置数据
"""
print("初始化函数执行了", name)
self.name = name
def __del__(self):
"""
清理函数
"""
print("清理函数执行了")
#定义一个具体的实列P1 P1变量(实列)用于接收 初始化函数的返回值(类名+()会执行初始化函数)
P1 = Person("张三")
print(P1.name)
P2 = Person("李四")
print(P2.name)
P3 = Person("王二")
print(P3.name)
2.类的继承
封装: 为了提升复用(为了减少代码编写) 类 将数据于操作进行封装 继承: 为了减少代码的编写 通过父子类的继承关系 实现在子类中使用父类的功能 子类继承父类 可以使用父类内容
举例说明:
class Person: def __init__(self, name, age): self.name = name self.age = age def move(self): print(f"{self.name}可以行走") p1 = Person("局长", 50) p1.move() class SuperPerson(Person): """ SuperPerson 继承了 Person """ def __init__(self, name, age): """ super().__init__(name,age) 调用父类的初始化函数 :param name: :param age: """ super().__init__(name, age) def fly(self): """ 子类可以编写自己的方法 :return: """ print(f"{self.name},可以飞") sp1 = SuperPerson("钢铁侠", 30) sp1.fly()
3.类与实例
类:抽象的模板 实例:由模板克隆出来的具体的内容
class MoonCake:
"""
月饼类
"""
def __init__(self,tp, size, money):
"""
初始化函数为了初始化self的数据
初始化函数默认返回self
:param tp:
:param size:
:param money:
"""
self.met = tp
self.sz = size
self.my = money
def show(self):
"""
返回当前实例信息 谁调用self self就是谁
"""
return f"材料:{self.met}, 尺寸:{self.sz}, 价格:{self.my}"
五仁月饼 = MoonCake("五仁", "大", 10)
print(五仁月饼.show())
蛋黄月饼 = MoonCake("蛋黄","小", 50)
print(蛋黄月饼.show()