zoukankan      html  css  js  c++  java
  • day16.组合

    组合:给一个类的对象封装一个属性,这个属性是另一个类的对象

    class Gamrole:
        def __init__(self, nickname, ad, hd):
            self.nickname = nickname
            self.ad = ad
            self.hd = hd
        def attack(self,role):
            role.hp = role.hp - self.ad
            print('{}攻击了{}.{}掉了{}血,还剩{}血'.format(self.nickname, role.nickname, role.nickname, self.ad, role.hp))
        def equip_weaon(self,w):   #给人物封装一个武器属性,这个属性值是  Weapon类的一个对象
            self.weapon = w  #组合
    class Weapon:
        def __init__(self, name, ad):
            self.name = name
            self.ad = ad
        def fight(self, name, ad):
            self.name = name
            self.ad = ad
        def fight(self, role1, role2):
            role2.hd = role2.hd - self.ad
            print('{}用{}攻击了{},{}掉了{}血,还剩{}血'
                  .format(role1.nickname, self.name, role2.nickname, role2.nickname, self.ad, role2.hd))
    p1 = Gamrole('盖伦',20, 500)
    p2 = Gamrole('剑豪', 100, 200)
    w1 = Weapon('大宝剑', 30)
    w2 = Weapon('武士刀', 80)
    p1.equip_weaon(w1)
    p1.weapon.fight(p1,p2)           #盖伦用大宝剑攻击了剑豪,剑豪掉了30血,还剩170血
    

      

  • 相关阅读:
    eclipse使用
    模板模式

    异常处理
    内部类
    面向对象三大特征(三)--多态
    java双指针的简单理解
    简单易懂回溯算法
    《深入理解Java虚拟机》之(一、内存区域)
    Java笔记(第七篇 JDBC操作数据库)
  • 原文地址:https://www.cnblogs.com/beriuta/p/9569486.html
Copyright © 2011-2022 走看看