面向对象
概述:
[!tip|style:flat|label:提示]
如今主流的软件开发思想有两种:一个是
面向过程,另一个是面向对象。面向过程出现得较早,典型代表为C语言,开发中小型项目的效率很高,但是很难适用于如今主流的大中型项目开发场景。面向对象则出现得更晚一些,典型代表为Java或C++等语言,更加适合?于大型开发场景。两种开发思想各有长 短。 对于面向过程的思想:需要实现一个功能的时候,看重的是开发的步骤和过程,每一个步骤都需要自己亲力亲为,需要自己编写代码(自己来做) 对于面向对象的思想:当需要实现一个功能的时候,看重的并不是过程和步骤,而是关心谁帮我做这件事(偷懒,找人帮我做) 面向对象的三大特征有:封装性、继承性、多态性。生活举例
[!tip | style:flat|label:提示]
洗衣服
面向过程(手洗):脱衣服、找一个盆、加水、加洗衣粉、浸泡30分钟、搓洗、拧衣服、倒掉水、再加水、漂洗、拧衣服、倒掉水、晾衣服。
面向对象(机洗):脱衣服、放入洗衣机、按下开关、拿出衣服晾晒
买电脑
面向过程(自己买):需要电脑、查询參数信息、横向比较机型、了解打折信息、与店家讨价还价、下单、收快递、开机验货、确认收货。
面向对象(找人买):需要电脑、找秘书帮我买、收电脑。
吃饭
面向过程(自己做):我饿了、买菜、洗菜择菜、切菜、起火、炒菜、盛菜、吃饭、刷碗。
面向对象(出去买):我饿了、买饭、
类和对象
面向对象编程的2个非常重要的概念:类和对象
对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念一一类
1. 类
我们学习编程语言,就是为了模拟现实世界中的事物,实现信息化来提高工作效率。例如银行的业务系统、超市的结账系统等,都是如此、
面向对象的语言当中,“类"就是用来模拟现实事物的,
那么模拟现实世界的事物通常从两方面模拟:
属性:事物的特征描述信息,用于描述某个特征是什么。静行为:事物的能力行动方案,用于说明事物能做什么。
类中也有属性、行为两个组成部分,而“对象”是类的具体实例。例如:
类:抽象的,是一张"手机设计图"对象:具体的,是一个"真正的手机实例"

[!tip|style:flat|label:提示]
奔驰汽车 类 奔驰smart 类 张三的那辆奔驰smart 对象 狗 类 大黃狗 类 李四家那只大黃狗 对象 水果 类 苹果 类 红苹果类红富士苹果 类 我嘴里吃了一半的苹果 对象
类的构成
类(class)由三个部分构成
- 类的名称:类名
- 类的属性:一组数据
- 类的方法:允许对进行操作的方法(行为)
举例:
- 人类设计,只关心3样东西
- 事物名称(类名):人(Person)
- 属性:身高(height)丶年龄(age)
- 方法(行为/功能):跑(run)丶打架(fight)
- 狗类的设计
- 类名:狗(Dog)
- 属性:品种丶毛色丶性别丶名字丶腿儿的数量
- 方法:(行为/功能):叫丶跑丶咬人丶吃丶摇尾巴
类的抽象
如何把日常生活中的事物抽象成程序中的类?
拥有相同(或者类侧属性和行为的对象都可以抽像出一个类
方法:一般名词都是类(名词提炼法)
坦克发射3颗炮弹轰掉了2架飞机
- 坦克-》可以抽象成类
- 炮弹--》可以抽象成类
- 飞机-》可以抽象成类
小明在公车上牵着一条叼着热狗的狗
- 小明--》人类
- 公车--》交通工具类
- 热狗--》食物类
- 狗--》狗类
类的定义
# 类的定义
class Dog(object): # 推荐使用这种方式
pass
# 定义方式2
class Dog1(): # 括号中的内容可以不写
pass
# 定义方式3
class Dog2: # 括号可以省略
pass
"""
新式类:直接或间接继承object类的类,在python3中,所以的类默认继承object类,即python3中所有的类都是新式类
旧式类(经典类): 已经过时,不推荐使用
"""
创建对象
在代码中,对象是由类创建的
# 定义类
class Dog(object):
# 在类中定义的函数,称为方法,函数的所有知识都可以使用
def play(self): # 暂时不管self
print("小狗正在玩耍")
# 创建对象 变量 = 类名()
dog = Dog() # 类名()创建对象
print(id(dog))
dog1 = Dog()
print(id(dog1))
# 调用方法 对象.方法名()
dog.play()
dog1.play()