這是一篇Java
練習貼,文章中布置了習題,講解了需求,跟考點。后面也跟著習題的代碼。有興趣的同學可以自己寫一下代碼,然后再來跟文中的代碼對比,看看有什么值得學習的地方。
Java習題第一題
題目:創(chuàng)建一個LOL中的英雄類和怪物類,要求:
怪物類中加入生命值屬、等級屬性,生命值=等級*1000
英雄類中加入“經(jīng)驗值”,“等級”,“攻擊力”等屬性變量,加入“擊打”方法,擊打的目標是怪物,擊打的結果是怪物的生命值-英雄攻擊力
考點:類的聲明、方法的聲明、對象的聲明與屬性調(diào)用
Hero類
public class Hero {
int EXP;//經(jīng)驗值
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級,經(jīng)驗值最低為0,最高為30級時的經(jīng)驗值
該類中要求有一個含有參數(shù)的構造函數(shù),參數(shù)為英雄的經(jīng)驗值,初始化時要保證經(jīng)驗值在要求范圍之內(nèi),通過經(jīng)驗值計算英雄的級別,英雄的級別計算公式如下: N=當前級別,EXP(經(jīng)驗值)=30(N^3+5N)-80
構建一個無參的構造方法,將經(jīng)驗值設置為0
利用英雄類無參和帶有參數(shù)的構造函數(shù)分別構建英雄對象,并輸出英雄的等級和經(jīng)驗值。
考點:類的聲明、構造方法、this的使用,方法的調(diào)用
Hero類
public class Hero2 {
int EXP;//經(jīng)驗值
int grade;//等級
//有參的構造函數(shù)
public Hero2(int EXP){
this.EXP = EXP;//經(jīng)驗值
}
//無參的構造函數(shù)
public Hero2(){
EXP=0;//經(jīng)驗值
}
}
main
public class Work2 {
public static void main(String[] args) {
//無參構造結果
Hero2 e= new Hero2();
System.out.print("無參構造的");
System.out.println("經(jīng)驗值為:"+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+"級經(jīng)驗值:"+(30*(i*i*i+5*i)-80));//輸出1-30級每級的經(jīng)驗值所需經(jīng)驗
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("經(jīng)驗值為:"+h.EXP+" 時,等級為:"+h.grade+" 級");
}
}
以上是兩道Java
的習題及代碼,希望對同學們有所幫助。對Java
感興趣的同學可以看一下教程
- Java教程:http://o2fo.com/java/
- Java面試基礎題:http://o2fo.com/minicourse/play/00007
文章參考來源:blog.csdn.net/d694046387/java/article/details/107620181