App下載

Java練習題,包含類,方法,對象,屬性調(diào)用,this使用和構造方法

猿友 2020-07-28 14:33:23 瀏覽數(shù) (5425)
反饋

這是一篇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習題結果

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感興趣的同學可以看一下教程

文章參考來源:blog.csdn.net/d694046387/java/article/details/107620181

0 人點贊