day26面向对象
今日内容概要
面向对象编程思想前戏
今天我们是学习了一个可以算是一个新的知识点也可以说是一个全新的思想
我们根据需要可以创建多个对象
2).每个对象中的属性是彼此独立的,互补干扰
3).只要是某个类型的对象,创建了多个,那么这多个对象都能调用这个类型中的方法和属性
编程思想
面向过程编程
#将程序的执行流程化 即分步操作 分步的过程中解决问题
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑
#面向过程就是 比方说汽车启动是一个事件,汽车到站又是另一个事件。在编程序的时候我们关心的是某一个事件。而不是汽车本身。
我们简单划分几个步骤
开车门、
启动车子、
挂挡踩油门、
车子正常行驶、
最后到家。
#分析出这些解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了
面向对象编程
那么什么是面向对象编程呢?由于对象这个词本身就很抽象,只要你不是按照下面这张图片理解的,那么你还是可以学好面向对象编程的。
可以理解为是对象就是一个容器容器里面有功能和数据·核心就是对象二字
什么是对象?
我个人的理解,任何事物都可以称之为对象,每个对象都有自己的行为属性。
就好比人就是一个对象,这个人的年龄、身高就是他的属性,吃喝玩乐就是他的行为。
对象==容器
功能 数据·
类和对象的概念
类就是一系列对象相似的特征与技能的结合体
对象就是特征与技能的结合体
对象:数据与功能的结合体
类:用来描述具体相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。对象是类的示例
类
这个字,我们见到这个字就会心里有个概念
什么什么类比方说人类可以描述很多人但是人跟人肯定不会完全一样 但他们就是有很多的相同之处 所以就验证了类就是用来描述多个对象'相同'特征的名词
类与对象的创建
对象就是数据与功能的结合体,而类就是存放这些对象的一容器 所以你先得有一个类 然后在类下面 存放对象这些对象就是类代码类体代码就是存放对象公共数据和功能的地方 ,它的语法结构
class Student:
# 学生类公共的数据
school = '清华大学'
# 学生类公共的功能
def choose_course(self):
print('学生选课功能')
"""类体代码无需调用就会执行 产生类的名称空间"""
"""
语法结构
class 类名:
类体代码
1.class是定义类的关键字
2.类名类似于函数名 但是首字母推荐大写 用于区分
3.类体代码就是存放对象公共数据和功能的地方
数据: 变量名 = 变量值
功能: 函数
"""
class Student:
school = '老男孩'
def teacher(self):
print('金牌讲师jby')
print(Student.__dict__)# 返回值是一个字典
print(Student.__dict__['school'])# 获取类中的属性
print(Student.__dict__['teacher'])# 获取类中的属性
"""如何产生对象:类名加括号"""
obj1 = Student() # 类名加括号就是在产生一个对象
obj2 = Student()
print(obj1.__dict__, obj2.__dict__) # {} {}
print(obj1.school) # 清华大学
print(obj2.school) # 清华大学
print(obj1.teacher) # bound method
print(obj2.teacher) # bound method
Student.teacher='高大威猛纪伯元'#修改名字与值的对应关系
print(obj1.teacher) #高大威猛纪伯元
print(obj2.teacher) #高大威猛纪伯元
对象实例化
# class Student:
# def __init__(self, name, age, gender):
# '''该方法就一个功能>>>:给对象添加独有的数据'''
# self.name = name # obj.__dict__['name'] = name
# self.age = age # obj.__dict__['age'] = age
# self.gender = gender # obj.__dict__['gender'] = gender
#
# # 学生类公共的数据
# school = '清华大学'
#
# # 学生类公共的功能
# def choose_course(self):
# print('学生选课功能')
#
#
#
#
# obji1 = Student('zqh', 18, 'male') # 类名加括号就是在产生一个对象
# print(obji1.__dict__)
绑定方法
class Student:
school = '清华大学'
# __init__方法不要自己去调用
def __init__(self, name, age):
self.name = name
self.age = age
def func(self):
print('%s正在调用func方法'%self.name)
def index(self):
print('%s正在调用index方法'%self.name)
obj1 = Student('jason', 18)
obj2 = Student('kevin', 28)
# 对象调用类中函数 会将当前调用的对象当做第一个参数自动传入
obj1.func()
obj2.func()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下