java 包含类_Java练习题,包含类,方法,对象,属性调用,this使用和构造方法...

这是一篇Java练习贴,文章中布置了习题,讲解了需求,跟考点。后面也跟着习题的代码。有兴趣的同学可以自己写一下代码,然后再来跟文中的代码对比,看看有什么值得学习的地方。

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);

}

}

6e9341abebfc7a14268d2a864c0fffe5.png

Java习题第二题

题目:自定义一个英雄类,要求:

英雄的级别最低为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+" 级");

}

}

a1857201c28d88dcbc199e8c9dafb7fd.png

以上是两道Java的习题及代码,希望对同学们有所帮助。对Java感兴趣的同学可以看一下教程

文章参考来源:blog.csdn.net/d694046387/java/article/details/107620181

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值