Python程序设计基础与应用 第六章-面向对象程序设计

第六章 面向对象程序设计-整理

6.1 类的定义与使用

数据成员:创建类时用变量形式表示对象特征的成员
成员方法:用函数形式表示对象行为的成员
面向对象程序设计的3个要素:封装、继承和多态

class Car(Object):
	def showInfo(self):
		print("This is a car")

6.2 数据成员与成员方法

6.2.1 私有成员与公有成员:

class Test:
	def __init__(self, value=0): #构造方法,创建对象时自动调用
		self.__value = value #私有成员数据
	def setValue(self, value): #共有成员方法
		self.__value = value #在类的内部可以直接访问私有成员
	def show(self):         #成员方法,公有成员
		print(self.__value) 

6.2.1 数据成员

数据成员用来描述类或对象的某些特征或属性
属于对象的数据成员:

主要在构造方法__init__()中定义
在定义和在实例方法中访问成员时往往以self作为前缀
同一个类的不同对象的数据成员之间互不影响

属于类的数据成员:

不在任何成员方法之内,是该类所有对象共享的
不属于任何一个对象

6.2.3 成员方法

class Root:
	__total = 0
	def __init__(self, v):  #构造方法
		self.__value = v
		Root.__total += 1
	
	def show(self): #普通实例方法,以self作为第一个参数
		print('self.__value:',self.__value)
		print('Root.__total:',Root.__total)

	@classmethod #修饰器,声明类方法
	def classShowTotal(cls): #类方法,一般以cls作为第一个参数
		print(cls.__total)

	@staticmethod #修饰器,声明静态方法
	def staticShowTotal(): #静态方法,可以没有参数
		print(Root.__total)

r = Root(3)
r.classShowTotal() #通过对象来调用类方法
r.staticShowTotal() #通过对象来调用静态方法

rr = Root(5)
rr.classShowTotal() #通过类名调用类方法
rr.staticShowTotal() #通过类名调用静态方法

6.2.4 属性

class Test:
	def __init__(self, value):
		self.__value = value

	def __get(self): #可读
		return self.__value

	def __set(self, v): #可修改
		self.__value = v

	def __del(self): #可删除
		del self.__value

	value = property(__get, __set, __del)

	def show(self):
		print(self.__value)

6.3 继承

父类或基类:已有的、设计好的类
子类或派生类:新设计的类
派生类可以继承父类的公有成员,但是不能继承其私有成员
如果要在派生类中调用基类的方法,可以使用内置函数super()或者通过“基类名.方法名()”的方式

6.4 特殊方法

特殊方法文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值