简单实现对象调用:创建一个LOL中的英雄类和怪物类

1、创建一个LOL中的英雄类和怪物类,要求:
怪物类中加入生命值属、等级属性,生命值=等级*1000
英雄类中加入“经验值”,“等级”,“攻击力”等属性变量,加入“击打”方法,击打的目标是怪物,击打的结果是怪物的生命值-英雄攻击力
2、自定义一个英雄类
英雄的级别最低为0,最高为30级,经验值最低为0,最高为30级时的经验值
该类中要求有一个含有参数的构造函数,参数为英雄的经验值,初始化时要保证经验值在要求范围之内,通过经验值计算英雄的级别,英雄的级别计算公式如下:
N=当前级别,EXP(经验值)=30(N^3+5N)-80
构建一个无参的构造方法,将经验值设置为0
利用英雄类无参和带有参数的构造函数分别构建英雄对象,并输出英雄的等级和经验值。

Hero类代码

package chp6;

public class Hero {
	int life;
	int Lv;
	int exp;
	int strength;
	
	static int[] map=new int[31];
	static{
		map[0]=0;
		for(int i=1;i<=30;i++)
			map[i]=30*(i*i*i+5*i)-80;
	}
	public Hero(){
		this.exp=0;
		this.Lv=1;
		this.strength=10;
	}
	public Hero(int exp) {
		this();
		if(exp>map[30]||exp<map[0]) {System.out.println("invaild exp");return;}
		this.exp = exp;
		int i;
		for(i=1;i<=30;i++)
			if(map[i]>exp) break;
		this.Lv=i;
		this.strength=Lv*50;
	}
	public void hit(Monster m){
		m.life = m.life - this.strength;
	}
	
	@Override
	public String toString() {
		return "Hero [life=" + life + ", Lv=" + Lv + ", exp=" + exp + ", strength=" + strength + "]";
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Hero h1 = new Hero();
		Hero h2 = new Hero(1000);
		Monster m = new Monster(5);
		System.out.println(m+" "+h1);
		System.out.println("h1 hit m");
		h1.hit(m);
		System.out.println(m);
		
		System.out.println(m+" "+h2);
		System.out.println("h2 hit m");
		h2.hit(m);
		System.out.println(m);
	}

}

```java
Monster类

package chp6;

public class Monster {
int life;
int Lv;

public Monster(int Lv) {
	this.Lv = Lv;
	life=Lv*1000;
}

@Override
public String toString() {
	return "Monster [life=" + life + ", Lv=" + Lv + "]";
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Monster m = new Monster(10);
	System.out.println(m);
}

}


你可能感兴趣的:(Java基础)