python3面向对象的设计和实现

面向对象

面向对象的设计和实现

一、定义和实现 对象 可以直接对应现实世界里面的事物

二、面向对象的设计(OOD)

1、分析要解决的现实世界的问题

2、定义出各种对象 代表现实世界的对象

3、通过设计 对象之间的关系和交互行为来设计系统

三、因为

1、现实世界 其实就是各种对象 和对象之间的关系、交互行为

2、现实世界:事物的时间

a、物:对象、对象之间的关系(儿子、父亲;老板、员工)
b、事:对象之间的交互(司机开车,厨师做饭)

3、这种设计方式 更容易被人所理解和接受


类和实例

1、首先,寻找要设计的对象

​ 老虎、羊、房间

2、接下来,确定对象的定义

a、对象的定义:定义对象在这个系统里面的的属性和行为

b、比如老虎这类对象,在这个系统里面的共有属性,行为 属性

c、在面向对象的软件设计中把对象和它的属性和行为的定义叫 类 的定义

d、类表示了这类对象所共有的属性和行为

e、类是面向对象的设计中最基本的概念

f、定义了类,就定义了对象的类型(包括在系统里面的属性和行为)

3、实例 是类的具体化存在

    a、老虎这个类,描述了:
		1、在这个系统里面共有的属性:体重、名称
		2、行为有叫、吃食物
	b、每个具体的老虎,是老虎这个类的 实例
		房间中老虎
		
	c、类的实例的关系,有点像 模具和根据模具做的东西一样

面向对象的语言 vs 面向对象的设计

1、面向对象的设计:是一种设计思路

2、面向对象的语言:提供对面向对象设计的语言支持

3、非面向对象的语言也能实现面向对象的设计思路

静态属性和实例属性

	1、静态属性(类属性)
		该类的所有实例共享的属性
		
	2、实例属性
		体重(每个实例独有的)
		定义在 初始化方法 __init__里
		self的概念

静态方法和实例方法

1、对象的方法就是描述对象行为的

a、通过定义在类里面的函数

b、初始化方法__init__函数

2、类的方法包括

a、实例方法:每个具体实例相关的方法

b、静态方法:共有的方法,每个具体实例都是相同的

实例方法:
	1、与每个具体实例相关的方法
		如果代码中的实例方法不访问任何实例属性,一般建议实现为静态方法
		
	2、初始化方法就是一个实例方法
	
	3、一般实例方法都要访问self
	
静态方法
	与每个具体实例无关
	
	@staticmethod 修饰 (装饰器)
	
	静态方法不能访问实例属性,但是可以访问静态属性

对象的组合

一、什么是对象的组合?

1、房间里可以包含老虎、羊

2、通过 对象的属性 表示这种组合 关系的

在类定义的 初始化函数 里面表示对象的组合
class Room:
	def __init__(self,num,animal):
    	self.num = num
    	self.animal = animal

对象的继承

现实世界里面的对象

重定义

子类的属性和行为跟父类不一样

子类实例 调用这些属性、方法 会使用新的定义

多态

​ 同样的的方法调用,在不容类型的对象上会表现出不同的特性,称之为多态

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值