教你如何 面向对象编程 超详解!(一)

面向对象编程概述

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

好的,我们知道这一大段话比较难以理解。
就像人们总是喜欢把一句简单的话扩充成谁也听不懂的句子。。。
所以让我们来简单一点讲述这个概念。

面向对象编程(OOP),是一种编程方式,这种编程方式需要使用“对象”来实现。

那么,什么是对象?



一切都是对象。

对象的特征

  1. 世间万物皆对象
    某个具体的领域也是由对象组成的,例如:
    在学校,对象包括学生,老师,课程,教室和成绩单等。。。
    在银行领域,对象包括银行账户、出纳员、支票等。。。
    (日常生活中就是桌子、椅子、苹果、房子都是对象)
  2. 每个对象都是唯一的
    对象的唯一性来自于真实世界中事物的唯一性
    世界上不存在两片一模一样的叶子,因此在软件系统中的对象也具有唯一性。
  3. 对象具有属性和行为
    例如:小王,性别男,年龄18,身高1.8m,体重70kg,能够学习、唱歌和打乒乓球、编程。
    那么我们可以获得什么呢?
小王属性小王行为
姓名学习
性别唱歌
年龄打乒乓球
身高、体重编程
  • 对象的行为包括具有的功能及具体的实现
  1. 对象具有状态
    状态是指某个瞬间对象的各个属性的取值
    对象的某些行为往往会改变对象自身的状态,即属性的取值。
    例如:小王的体重本来70kg,减肥后,体重变为70kg.【属性改变了】
    (有一种养成游戏中主角在数值上发生的某些变化的感觉…)
  2. 对象分为类对象和实例对象两大类
    类对象是具有相同属性和行为的实例对象的抽象
    类对象就是实例对象的模板,实例对象是由类对象创建出来的。
    此外,同一个类对象的所有实例对象如果具有相同的属性,表明它们的属性的含义是相同的。

你→拿着月饼模具→压出好多月饼
。。。
月饼模具 —————————————→类对象
压出的月饼————————————→实例对象

面向对象编程的大体步骤

  1. 抽象出类对象
  2. 抽象出类对象的属性
  3. 抽象出类对象的行为(方法)
  4. 根据类对象创建实例对象
  5. 通过实例对象访问属性和方法

以猫咪为例

  1. 抽象:
    (各式各样的猫咪)
    在这里插入图片描述
    那么我们现在要开始抽象
    在这里插入图片描述
  2. 定义类对象的语法格式:
class 类名 (object):

#属性与方法  

其中:

  1. 类名由一个或多个单词组合而成,每个单词的首字母大写且其余字母全部小写,例如:SomeClass.
  2. (object)表示该类对象继承自Python内置的类对象object,Python中所有的类对象都继承资一个统一的基类:object。
    例:
>>>class SomeClass(object):
		pass

初识属性

行为(方法)是类中特殊的函数。
比如:
猫具有的行为↓
1、跑
2、喵喵叫
3、年龄
4、健康状况等
在这里插入图片描述

初识类的方法

那么猫可以做什么呢?
1、跑 2、喵喵叫 3、吃东西

抽象

在这里插入图片描述
行为(方法)是类中特殊的函数。

类的方法与函数的区别

方法就是定义在类对象中的函数。方法与函数的区别在于:

  1. 定义方法时,方法的第一个形参表示调用该方法的实例对象,第一个形参的名称通常是self,也可以是其他名称。
  2. 调用方法时,系统自动将调用该方法的实例对象作为实参传递给第一个形参。第一个实参会传递给第二个形参,第二个实参会传递给第三个形参,以此类推。

根据类对象创建实例对象的语法格式为:
在这里插入图片描述

现在我们可以通过类对象来创建实例对象了:
在这里插入图片描述
成功~

实例对象属性

实例属性

实例属性指的是实例对象所绑定的属性。

绑定实例属性(给实例对象绑定属性)的方式有两种:

  1. 在类对象的内部(方法中)
    语法格式:self.属性名 = 属性值
    推荐在特殊方法【init】中进行绑定,这样,在创建实例对象后就会自动调用特殊方法【int】对实例对象进行初始化,从而绑定实力属性。如果在其他方法中进行绑定,可能需要手动调用该方法后才会绑定

  2. 在类对象的外部

    Python是动态语言,所以,在实例对象创建之后,可以对其动态地绑定属性。
    语法格式:实例对象.属性名 = 属性值
    如果指定名称的实例属性已经存在,则是对实例属性进行修改 。

访问实例属性的方式有两种:

  1. 在类对象的内部(方法中)
    语法格式: self.属性名
  2. 在类对象的外部
    语法格式:实例对象.属性名
    之所以添加前缀"self"或"实例对象”,是为了表明实例属性被哪个实例对象所绑定。

【举个例子】↓↓↓↓↓
在这里插入图片描述

实例对象.__ dict __

可获得该实例对象所绑定的所有属性及其值的字典。
在这里插入图片描述

类对象属性

类属性

类属性指的是类对象所绑定的属性。

绑定类属性(给类对象绑定属性)的方式有两种:

  1. 在类对象的内部(方法外)
    语法格式:属性名=属性值
  2. 在类对象的外部
    Python是动态语言,所以,在类对象创建之后,可以对其动态地绑定属性。
    语法格式:类对象.属性名=属性值
    如果指定名称的类属性已经存在,则是对类属性进行修改。

访问类属性的方式有两种:

  1. 在类对象的内部(方法中)
    语法格式:类对象.属性名
  2. 在类对象的外部
    语法格式:类对象.属性名 或: 实例对象,属性名
    类对象的所有实例对象都有一个指向类对象的指针,所以,类对象的所有实例对象都可以访问类属性。
    之所以添加前缀"类对象",是为了表明类属性被哪个类对象所绑定。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值