这次我们来看一个小案例,有Player类、Gun类、Bullet类、Clip类,还有一个测试类。需求是人用枪攻击另一个人,我们需要用到面向对象的思想来进行。
首先看一下这个UML类图:
然后我们来看具体的代码实现:
子弹类
package com.tedu.yadx.day17;
/**
* 子弹类
* @author qwf91
*
*/
public class Bullet {
private int hurt = 10;//子弹的伤害值
public Bullet(){
}
public Bullet(int hurt){
this.hurt = hurt;
}
//子弹击中敌人
public void hitEnemy(Player enemy){
enemy.damage(hurt);
}
}
弹夹类
package com.tedu.yadx.day17;
/**
* 弹夹类
* @author qwf91
*
*/
public class Clip {
private Bullet[] magazine;//弹仓
private int capacity = 30;//弹夹容量
private int surplus;//弹夹余量
public Clip