【java程序题】类与对象

文字版格斗游戏

  1. 定义角色(Role)类,成员变量中定义姓名(name),血量(blood或hp(horsepower)),属性私有,生成空参、有参构造方法,生成set/get方法;
  2. 定义测试类,在main方法中创建该类的对象并给属性赋值(set方法);
  3. 调用成员方法,打印如下:

郭靖打了欧阳克一拳,造成失血XX点,欧阳克还剩XX点血。

欧阳克打了郭靖一拳,造成失血XX点,郭靖还剩XX点血。

郭靖(欧阳克)K.O.了欧阳克(郭靖)。

代码如下:

//RoleTest类
package pro1;

public class RoleTest {
	public static void main(String[] args) {
	Role role1 = new Role("郭靖",100);
	Role role2 = new Role("欧阳克",100);	
	while(true) {
		role1.attack(role2);
		if(role2.getBlood()==0) {
			System.out.println(role1.getName()+"K.O.了"+role2.getName());
			break;
			
		}
		role2.attack(role1);
		if(role1.getBlood() == 0) {
			System.out.println(role2.getName()+"K.O.了"+role1.getName());
			break;
		}
	}
  }
}

//Role类
package pro1;
public class Role {
	private String name;
	private int blood;
	public Role() {
		this.name = "";
		this.blood = 0;
	}
	public Role(String name,int blood) {
		this.name = name;
		this.blood = blood;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getBlood() {
		return blood;
	}
	public void setBlood(int blood) {
		this.blood = blood;
	}
	public void attack(Role attackee) {
		int damage = (int)(Math.random()*20)+1;
		int remain = attackee.getBlood() - damage;
		remain= remain < 0?0:remain;
		attackee.setBlood(remain);
		System.out.println(this.name+"打了"+attackee.getName()+"一拳,造成失血" + damage+"点,"+attackee.getName()+"还剩"+attackee.getBlood()+"点血");
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值