面向对像(oop)

'''
面向过程
'''
# 在编写代码的时候,要解决的问题被看作是一个个要完成的任务,然后使用编程语言中的函数完成这些任务,解决问题的关键点是使用函数
# 程序的执行流程主要由函数的调用和控制流语句(如条件语句和循环语句)组成
# 按照特定顺序依次执行一系列函数来完成任务
# 它将问题分解为多个可重用的函数,并通过函数之间的参数传递数据来实现协作

'''
面向对象 oop
'''
# 以对象为中心的编程方式,它将程序组织为一系列的对象,每个对象都有自己的属性和方法。
# 对象之间可以通过消息传递来进行通信和交互。
# 面向对象编程强调数据和操作的封装,通过定义类和创建对象来实现。
# 面向对象编程更加灵活、可扩展,适用于复杂的、具有多个实体和关系的问题。
# 包括封装,继承,多态三大特性

'''

'''
# 类:模板,限制实例应有内容
# 在一个类中,可以定义多个属性和方法,用于描述该类的特征和行为。
# 关键字class,声明类
# class 类名:
# pass
# 类命名规则:大驼峰 MyName

'''
实例
'''
# 定义了一个类之后,可以通过实例化这个类来创建对象
# 一个对象是类的具体实例,它具有类定义的属性和方法。
# class Person:
# pass
# p1=Person()
# p1就是Person类的实例

'''
初始化方法
'''
# __init__(self)
# 创建对象时自动调用的特殊方法,也称为构造函数。它的主要作用是初始化对象的属性。
# 第一个参数是self,表示对象本身。初始化方法可以接受额外的参数,用于初始化对象的属性。
# class Person():
# # 初始化函数
# def __init__(self,name,age):
# """
# self是类初始化好的实例
# """
# self.name=name
# self.age=age
# p1=Person("王一",20)

'''
魔法方法
'''
# 概念:以双下划线__开头和结尾的特殊方法。这些方法在特定情况下会被自动调用,
# 例如创建对象时、进行运算时等。魔法方法可以被用于实现一些特殊的功能,例如比较、迭代、序列化等。

'''
字符串方法
'''
# __str__(self)用于返回对象的字符串表示,可以直接获取到想要返回的内容,可读的字符串表示形式
# class Person:
# def __init__(self, name, age):
# self.name = name
# self.age = age
#
# def __str__(self):
# """
# 可读的字符串表示形式
# :return:
# """
# return f"姓名: {self.name}, 年纪:{self.age}"
#
# # 创建一个Person对象
# person = Person("Alice", 25)
#
# # 将对象转换为字符串并打印
# print(person) # 输出:Person: Alice, 25 years old

'''
self
'''
# self是类初始化好的实例,对调用方法的对象的引用。
# 当我们调用对象的方法时,Python会自动将对象传递给self参数,因此我们可以通过self来访问对象的属性和方法。
# class Person:
# def __init__(self, name, age):
# """
# self.name和self.age来访问对象的属性
# 可以通过self来访问person对象的属性
# """
# self.name = name
# self.age = age
#
# def introduce_self(self):
# print(f"My name is {self.name} and I am {self.age} years old.")
#
# # 创建一个Person对象
# person = Person("Alice", 25)
#
# # 调用introduce_self方法时,Python会自动将person对象作为self参数传递给introduce_self方法,
# person.introduce_self()

'''
数据、属性、操作、行为
'''
# 数据(Data):即对象的状态,描述了对象当前所处的状态信息。数据通常以属性的形式存在,例如人的姓名、年龄、性别等。
# 属性(Attribute):即对象的特征,用于描述对象的某些性质或特征。属性可以是变量或常量,可以是基本类型或自定义类型。
# 操作(Operation):即对象能够进行的动作或操作,用于描述对象的行为。操作通常以方法的形式存在,例如人可以说话、吃饭等。
# 行为(Behavior):即对象的外部表现,用于描述对象和其他对象之间的交互行为。行为通常以消息的形式存在,例如人可以向别人打招呼、向别人借钱等。
# class Animals():
# def __init__(self,name):
# """
# name就是属性
# eat 和 walk就是行为
# """
# self.name=name
# def eat(self):
# print(f"{self.name} 正在吃")
# def walk(self):
# print(f"{self.name}正在走")
# a=Animals("兔子")
# a.walk()
# a.eat()

'''
封装
'''
# 将数据和对数据的操作封装在一个对象中,并对外部隐藏对象内部的具体实现细节。
# 封装通过定义公共接口来访问对象的数据和方法,从而实现数据的安全性和代码的模块化。

'''
继承
从另一个类中继承属性和方法
继承:子类有父类的内容

父类已经写过的,子类不用再写了,直接调用即可
父类名__init__()

父类:animal父类,基类(超类)
子类:dog
子类名(父类名):
pass
'''
# class Animal:
# def __init__(self, name):
# self.name = name
# def walk(self):
# print(f"{self.name} 走")
# class Dog(Animal):
# def __init__(self, name, age):
# Animal.__init__(self, name)
# self.age = age
# class WangDog(Dog):
# def __init__(self, name, age, sex):
# Dog.__init__(self, name, age)
# self.sex = sex
# wd = WangDog("小七", 3, "男")
# wd.walk()

'''
多态
python没有多态,python到处都是多态
'''
# 同一种操作作用于不同的对象时,产生不同的结果
# 允许不同类的对象对相同的消息作出响应,表现出不同的行为
# python没有多态
# python到处都是多态
'''
重载多态:依靠*args 可以给方法传多个参数
同一个类中定义多个同名但参数列表不同的方法
'''
# class Person:
# def walk(self,*args):
# print(f"走",args)
# p=Person()
# p.walk()
# p.walk(10)
# p.walk(10,20)
# p.walk(10,20,30)

'''
重写多态:父类中有方法,子类中也有这个方法
子类重新定义了父类中已经存在的方法
'''
# class SuperMan(Person):
# def skill(self):
# print(f"发射技能")
# # 重写了父类的walk方法
# def walk(self):
# print("我也可以走")
# s=SuperMan()
# s.skill()
# s.walk()




 

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值