面向对象初识
一.什么是面向对象(***)
面向对象是一种编程思想,能够指导程序员如何编写出更好的程序,核心是对象,程序就是一系列对象的集合,程序负责调度控制这些对象来交互着完成任务
1.面向对象的优点与缺点
优点: 1.扩展性好
2.灵活性高
3.复用性好
缺点:
1.程序的复杂度高
2.无法准确预知结果
2.使用场景:对扩展性要求较高的程序,通常都是直接面向用户的
二.面向过程编程思想
核心是过程,过程是一步步的执行步骤,就是先做什么后做什么
1.面向过程编程的优点与缺点
优点:
1.逻辑清晰
2.复杂的问题简单化,流程化
缺点
1.扩展性差
2.可维护性差
3.复用性低
2.使用场景:对扩展性要求较低的程序
三.类和对象
1.类
类即类型,类别,是一种抽象概念,是一系列具备相同特征和相同行为的对象的集合
2.对象
对象就是具体存在的某个事物,具备自己的特征和行为,对象就是特征和技能的结合体
3.类和对象的关系
类包含一系列对象,对象属于某个类,
在生活中是先有对象再有类,而在程序中是先有类再有对象
四.创建类和对象
定义类的语法:
class 类的名称: # 类中的内容 描述属性和技能 #描述属性用变量 #描述行为用函数 #类名称 书写规范 首先是见名知意 名称是大驼峰命名法 #驼峰就是单词首字母大写 , 大驼峰是第一个字母大写,小驼峰是第一个字母小写
创建对象的语法:
class Person: pass #创建对象 p = Person()
对象中的属性,是每个对象独特而的
属性的增删改查
增加属性 对象变量名称.属性名称 = 属性值 删除属性 del 对象的变量名称.属性名称 修改 对象.属性 = 新的值 查看属性 访问的是对象的所有属性 print(对象.__dict__) 访问对象的类信息 print(对象.__class__)
__init__方法
初始化方法,本质上是一个函数
特点:1.当实例化对象时,会自动执行__init__方法
2.会自动将对象作为第一个参数传入
功能:给对象赋初始值
class Dog: def __init__(self,kind,color,age): self.kind = kind self.color = color self.age = age d1 = Dog("二哈","黑白",1) d1 = Dog("泰迪","棕色",2)
属性的查找顺序:
五.绑定方法与非绑定方法
对象的绑定方法
在默认情况下,类中的方法都是对象绑定方法,当使用对象调用该函数时会自动传入对象本身作为第一个参数,当使用类名来调用时他就是一个普通的函数,有几个参数就传几个参数
class Student: def __init__(self,name): self.name = name def say_hi(self): print("hello my name is %s" % self.name)
类绑定方法
类绑定方法用@classmethod来装饰
不管用类还是对象调用,都会自动传入类本身,作为第一个参数
非绑定方法(静态方法)
不需要访问类的数据,也不需要访问对象的数据
使用@staticmethod装饰
万般皆下品,唯有读书高!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)