Java练习题,包含类,方法,对象,属性调用,this使用和构造方法
2020-07-28 14:33:23
浏览数 (5311)
这是一篇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);
}
}
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+" 级");
}
}
以上是两道Java
的习题及代码,希望对同学们有所帮助。对Java
感兴趣的同学可以看一下教程
文章参考来源:blog.csdn.net/d694046387/java/article/details/107620181