Java学习之路——类和对象简单demo之奥特曼大战小怪兽

类和对象简单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滴血
迪迦被打败

目录结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值