面向对象封装案例
1.目标
士兵突击
身份运算
身份运算符 | 描述 | 区别 |
is | 比较对象内存地址是否相等 | ==判断对象值是否相等 |
is not | != |
2,.封装
封装是面向对象开发的重要特点
面向对象开发的第一步,将 属性和方法 封装到一个抽象的 类 中
外界使用类创建对象,通过对象调用方法
一个对象的属性可以是另外一个类创建的对象
01士兵突击
需要
1.士兵 许三多 有一把AK47
2.士兵可以开火
3. 枪能够发射子弹
4,枪 装填子弹
代码:
class Gun:
#枪的初始化
def __init__(self,model):
#1.枪的类型
self.model=model
#2.子弹数量
self.bullet_count=0
#枪的射击
def shoot(self):
#1.判断枪内是否有子弹
if self.bullet_count>0:
# 2.发射子弹 -1
self.bullet_count-=1
# 3.提示发射信息
print ("%s 突突突....[%d]" %(self.model,self.bullet_count))
else:
print ("%s 没有子弹" %(self.model))
#枪的装填
def add_bullet(self,count):
self.bullet_count+=count
class Solider:
#初始化士兵
def __init__(self,name):
#姓名
self.name=name
#新兵没有枪
self.gun=None
def fire(self):
#1.判断是否有枪
if self.gun==None:
print ("%s没有枪"%(self.name))
else:
# 2.高喊口号
print("冲冲冲....")
# 3.让枪装填子弹
self.gun.add_bullet(40)
# 4.进行射击
self.gun.shoot()
#创建枪对象
ak47=Gun("AK47")
#创建许三多
xusanduo=Solider("许三多")
xusanduo.gun=ak47
xusanduo.fire()