前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义

【愚公系列】2021年12月 Python教学课程 19-面向对象编程-面向对象定义

作者头像
愚公搬代码
发布2021-12-15 08:39:19
3420
发布2021-12-15 08:39:19
举报
文章被收录于专栏:历史专栏

文章目录

一、 什么是面向对象编程

面向对象编程:Object Oriented Programming,简称 OOP,是一种程序设计方法。OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的方法。Python 就是一种面向对象的语言,支持面向对象编程,在其内部,一切都被视作对象。

面向对象编程出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程编程。在面向过程编程中,问题被看作一系列需要完成的任务,函数用于完成这些任务,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。

示例:

代码语言:javascript
复制
'''
面向对象案例:
	老张开车去东北
	案例分析:
	对象有:人
		   交通工具
		   地点				  
'''
#定义人的对象
class Person:
	#初始化人的属性
	def __init__(self,name,card):
		self.name = name
		self.card = card
	
	#定义人使用交通工具的方法
	def drive(self,tool,place):
		if self.card:
			tool.driving()
			print("{}开{}去{}".format(self.name,tool.name,place.name))
		else:
			print("北京第三安全局提醒您:道路千万条,安全第一条,行车不规范,亲人两行泪")
	
#定义交通工具的对象
class Traffic_Tools:
	#初始化交通工具的属性
	def __init__(self,name,color):
		self.name = name
		self.color = color
	#定义交通工具的启动方法
	def driving():
		print("{}已经启动".format(self.name))
	
#定义地点的对象
class Place:
	#初始化地点的属性
	def __init__(self,name):
		self.name = name

lao_zhang = Person("老张",True)
tool = Traffic_Tools("Jeep","灰色")
place = Place("东北")

lao_zhang.drive(tool,place)

总结

面向过程:根据业务逻辑从上到下写代码。

面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速地开发程序,减少了重复代码的重写过程。

比较面向对象编程和面向过程编程,可以得到面向对象编程的以下优点:

  • 可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰;
  • 通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度;
  • 通过对对象的辨别、划分可以将软件系统分割为若干相对独立的部分,在一定程度上更便于控制软件复杂度;
  • 以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统;
  • 通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。

概念及术语:

  • 类(Class): 用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。其中的对象被称作类的实例。
  • 实例:也称对象。通过类定义的初始化方法,赋予具体的值,成为一个"有血有肉的实体"。
  • 实例化:创建类的实例的过程或操作。
  • 实例变量:定义在实例中的变量,只作用于当前实例。
  • 类变量:类变量是所有实例公有的变量。类变量定义在类中,但在方法体之外。
  • 数据成员:类变量、实例变量、方法、类方法、静态方法和属性等的统称。
  • 方法:类中定义的函数。
  • 方法重写:如果从父类继承的方法不能满足子类的需求,可以对父类的方法进行改写,这个过程也称 override。
  • 封装:将内部实现包裹起来,对外透明,提供 api 接口进行调用的机制
  • 继承:即一个派生类(derived class)继承父类(base class)的变量和方法。
  • 多态:根据对象类型的不同以不同的方式进行处理。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、 什么是面向对象编程
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档