python面向对象开发

面向对象封装案例

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()

 

 

   

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值