9.26
练习题:面向对象 设计士兵类
需求:设计士兵与武器AK47类,并完成前进、进攻、发射子弹、装载子弹的功能
士兵类:
package cn.cxy.exec;
/*
* 封装:
* 士兵相关的属性数据、逻辑运算方法,
* 封装成一个士兵“类”组件
*/
import java.util.Random;
public class Soldier {
//成员变量,属性变量
int id; //默认值0
int blood = 100;
AK47 a;//默认 null 值
//成员方法
public void go() {
//this是一个特殊引用
//引用“当前对象”的地址
//当前对象:谁调用就是谁
//可以省略,缺省存在
System.out.println(this.id+"号士兵前进");
}
public void attack() {
if(blood == 0) {
System.out.println("这是"+id+"号士兵的尸体");
return;//方法结束
}
System.out.println(id+"号士兵进攻");
if(a != null) {
a.fire();//调用枪发射子弹
}
//模拟进攻掉血
//随机的减血量
int d = new Random().nextInt(10);
blood -= d;
if(blood < 0) {//不允许负数血量
blood = 0;
}
System.out.println("血量:"+blood);
//血量是0
if(blood == 0) {
System.out.println(id+"号士兵阵亡");
}
}
浙公网安备 33010602011771号