类和对象简单demo之奥特曼大战小怪兽
建立奥特曼类:
属性包括 :血量(blood),速度(speed),魔法值(magic)。
行为方法:普通攻击(attack),魔法攻击(magicAttack)。
package demo;
import java.util.Random;
public class Altman {
public String name;
public int blood;
public int speed;
public int magic;
//产生随机数----攻击时随机掉血
Random random = new Random();
int i = random.nextInt(20);
//构造方法(含三个参数);
public Altman(String name,int blood,int speed,int magic) {
// TODO Auto-generated constructor stub
this.name = name;
this.blood = blood;
this.magic = magic;
this.speed = speed;
}
//构造方法(无参数);
public Altman() {
// TODO Auto-generated constructor stub
}
//行为————普通攻击
public void attack(Monster m) {
m.blood = m.blood-i;
System.out.println(m.name+"被攻击了;");
System.out.println(m.name+"掉了"+i+"滴血,还剩"+m.blood+"滴血");
}
//技能————魔法攻击
public void magicAttack(Monster m,Altman a) {
m.blood = m.blood-(a.magic*i/10+i);
System.out.println(m.name+"被攻击了;");
System.out.println(m.name+"掉了"+i+"滴血,还剩"+m.blood+"滴血");
}
}
先建立怪兽类:
属性包括 :血量(blood),速度(speed),魔法值(magic)。
行为方法:普通攻击(attack),魔法攻击(magicAttack)。
package demo;
import java.util.Random;
public class Monster {
public String name;
public int blood;
public int speed;
public int strength;
//产生随机数----攻击时随机掉血
Random random = new Random();
int i = random.nextInt(20);
//构造方法(含三个参数);
public Monster(String name,int blood,int speed,int strength) {
// TODO Auto-generated constructor stub
this.name = name;
this.blood = blood;
this.speed = speed;
this.strength = strength;
}
//构造方法(无参数);
public Monster() {
// TODO Auto-generated constructor stub
}
//行为————普通攻击
public void attack(Altman a) {
a.blood = a.blood-i;
System.out.println(a.name+"被攻击了;");
System.out.println(a.name+"掉了"+i+"滴血,还剩"+a.blood+"滴血");
}
//技能————加强攻击
public void strengthAttack(Altman a,Monster m) {
a.blood = a.blood-(m.strength*i/10+i);
System.out.println(a.name+"被攻击了;");
System.out.println(a.name+"掉了"+i+"滴血,还剩"+a.blood+"滴血");
}
}
主方法:新建奥特曼对象,新建怪兽对象,并实现互相攻击。
public static void main(String args[]) {
Random random = new Random();
int i = random.nextInt(100);
//新建对象
Altman altman = new Altman("迪迦", 200, 10, 10); //新建奥特曼对象,调用含参数方法,小括号直接赋值
Monster monster = new Monster(); //新建怪兽对象,调用无参数构造方法,再次赋值
monster.name = "哥斯拉";
monster.blood = 200;
monster.speed = 10;
monster.strength = 10;
//开始调用对打函数
while (altman.blood>=0&&monster.blood>=0) {
altman.attack(monster);
if (i<=15) {//15%的可能性使用技能
altman.magicAttack(monster, altman);
}
if(monster.blood<=0) {
System.out.println(monster.name+"被打败");
break;
}
monster.attack(altman);
if (i<=15) {//15%的可能性使用技能
monster.strengthAttack(altman, monster);
}if(altman.blood<=0) {
System.out.println(altman.name="被打败");
break;
}
}
}
运行结果为
哥斯拉被攻击了;
哥斯拉掉了5滴血,还剩95滴血
迪迦被攻击了;
迪迦掉了17滴血,还剩83滴血
哥斯拉被攻击了;
哥斯拉掉了5滴血,还剩90滴血
迪迦被攻击了;
迪迦掉了17滴血,还剩66滴血
哥斯拉被攻击了;
哥斯拉掉了5滴血,还剩85滴血
迪迦被攻击了;
迪迦掉了17滴血,还剩49滴血
哥斯拉被攻击了;
哥斯拉掉了5滴血,还剩80滴血
迪迦被攻击了;
迪迦掉了17滴血,还剩32滴血
哥斯拉被攻击了;
哥斯拉掉了5滴血,还剩75滴血
迪迦被攻击了;
迪迦掉了17滴血,还剩15滴血
哥斯拉被攻击了;
哥斯拉掉了5滴血,还剩70滴血
迪迦被攻击了;
迪迦掉了17滴血,还剩-2滴血
迪迦被打败