java中的类,方法,对象,属性调用,this使用和构造方法使用的练习

java中的类,方法,对象,属性调用,this使用和构造方法使用的练习

java学习贴

第一道题

题目:创建一个LOL中的英雄类和怪物类,要求:
怪物类中加入生命值属、等级属性,生命值=等级*1000
英雄类中加入“经验值”,“等级”,“攻击力”等属性变量,加入“击打”方法,击打的目标是怪物,击打的结果是怪物的生命值-英雄攻击力
考点:类的声明、方法的声明、对象的声明与属性调用

Hero类

public class Hero {

		int EXP;//经验值
		int grade;//等级
		int aggressivity;//攻击
		
		//击打的方法
		int strike(int x){
			return x - aggressivity;
		}
		
		public int getEXP() {
			return EXP;
		}



		public void setEXP(int EXP) {
			this.EXP = EXP;
		}



		public int getGrade() {
			return grade;
		}



		public void setGrade(int grade) {
			this.grade = grade;
		}



		public int getAggressivity() {
			return aggressivity;
		}



		public void setAggressivity(int aggressivity) {
			this.aggressivity = aggressivity;
		}

}

Monster 类


public class Monster {

		int grade;//等级
		int healthValue ;//生命值
		
		public int getGrade() {
			return grade;
		}
		public void setGrade(int grade) {
			this.grade = grade;
		}
		public int getHealthValue() {
			healthValue = grade*1000;
			return healthValue;
		}
		public void setHealthValue(int healthValue) {
			this.healthValue = healthValue;
		}

		
}

main


public class Work1 {

	public static void main(String[] args) {
		//怪物属性
		Monster m = new Monster();
		m.setGrade(5);
		System.out.println("怪物的等级为"+m.grade+"级  生命值为:"+m.getHealthValue());
		
		//英雄 
		Hero h = new Hero();
		h.setAggressivity(160);
		int a;
		a = h.strike(m.healthValue);
		m.setHealthValue(a);
		System.out.println("英雄击打后的生命值:"+m.healthValue);
	}
}

在这里插入图片描述

第二题

题目:自定义一个英雄类,要求:
英雄的级别最低为0,最高为30级,经验值最低为0,最高为30级时的经验值
该类中要求有一个含有参数的构造函数,参数为英雄的经验值,初始化时要保证经验值在要求范围之内,通过经验值计算英雄的级别,英雄的级别计算公式如下:
N=当前级别,EXP(经验值)=30(N^3+5N)-80
构建一个无参的构造方法,将经验值设置为0
利用英雄类无参和带有参数的构造函数分别构建英雄对象,并输出英雄的等级和经验值。考点:类的声明、构造方法、this的使用,方法的调用

Hero类


public class Hero2 {

	int EXP;//经验值
	int grade;//等级
	
	//有参的构造函数
	public Hero2(int EXP){
		this.EXP = EXP;//经验值
		}
	
	//无参的构造函数
	public Hero2(){
		EXP=0;//经验值
	}
	
}

main


public class Work2 {

	public static void main(String[] args) {
		//无参构造结果
		Hero2 e= new Hero2();
		System.out.print("无参构造的");
		System.out.println("经验值为:"+e.EXP+" 时,等级为:"+e.grade+" 级");
		
		//有参构造结果
		int a=120000;
		Hero2 h = new Hero2(a);
		System.out.print("有参构造的");
		for(int i = 1 ; i <=30 ; i++ ) {
			
			//System.out.println(i+"级经验值:"+(30*(i*i*i+5*i)-80));//输出1-30级每级的经验值所需经验
			if((30*(i*i*i+5*i)-80) <= h.EXP && (30*((i+1)*(i+1)*(i+1)+5*(i+1))-80)>h.EXP ) {
				h.grade=i;
				break;
			}
		}
		System.out.println("经验值为:"+h.EXP+" 时,等级为:"+h.grade+" 级");
	}

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值