App下載

Java練習(xí)題,包含類(lèi),方法,對(duì)象,屬性調(diào)用,this使用和構(gòu)造方法

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

這是一篇Java練習(xí)貼,文章中布置了習(xí)題,講解了需求,跟考點(diǎn)。后面也跟著習(xí)題的代碼。有興趣的同學(xué)可以自己寫(xiě)一下代碼,然后再來(lái)跟文中的代碼對(duì)比,看看有什么值得學(xué)習(xí)的地方。

Java習(xí)題第一題

題目:創(chuàng)建一個(gè)LOL中的英雄類(lèi)和怪物類(lèi),要求:

怪物類(lèi)中加入生命值屬、等級(jí)屬性,生命值=等級(jí)*1000

英雄類(lèi)中加入“經(jīng)驗(yàn)值”,“等級(jí)”,“攻擊力”等屬性變量,加入“擊打”方法,擊打的目標(biāo)是怪物,擊打的結(jié)果是怪物的生命值-英雄攻擊力

考點(diǎn):類(lèi)的聲明、方法的聲明、對(duì)象的聲明與屬性調(diào)用

Hero類(lèi)

public class Hero {


        int EXP;//經(jīng)驗(yàn)值
        int grade;//等級(jí)
        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 類(lèi)

public class Monster {


        int grade;//等級(jí)
        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("怪物的等級(jí)為"+m.grade+"級(jí)  生命值為:"+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習(xí)題結(jié)果

Java習(xí)題第二題

題目:自定義一個(gè)英雄類(lèi),要求:

英雄的級(jí)別最低為0,最高為30級(jí),經(jīng)驗(yàn)值最低為0,最高為30級(jí)時(shí)的經(jīng)驗(yàn)值

該類(lèi)中要求有一個(gè)含有參數(shù)的構(gòu)造函數(shù),參數(shù)為英雄的經(jīng)驗(yàn)值,初始化時(shí)要保證經(jīng)驗(yàn)值在要求范圍之內(nèi),通過(guò)經(jīng)驗(yàn)值計(jì)算英雄的級(jí)別,英雄的級(jí)別計(jì)算公式如下: N=當(dāng)前級(jí)別,EXP(經(jīng)驗(yàn)值)=30(N^3+5N)-80

構(gòu)建一個(gè)無(wú)參的構(gòu)造方法,將經(jīng)驗(yàn)值設(shè)置為0

利用英雄類(lèi)無(wú)參和帶有參數(shù)的構(gòu)造函數(shù)分別構(gòu)建英雄對(duì)象,并輸出英雄的等級(jí)和經(jīng)驗(yàn)值。

考點(diǎn):類(lèi)的聲明、構(gòu)造方法、this的使用,方法的調(diào)用

Hero類(lèi)

public class Hero2 {


    int EXP;//經(jīng)驗(yàn)值
    int grade;//等級(jí)

    
    //有參的構(gòu)造函數(shù)
    public Hero2(int EXP){
        this.EXP = EXP;//經(jīng)驗(yàn)值
        }

    
    //無(wú)參的構(gòu)造函數(shù)
    public Hero2(){
        EXP=0;//經(jīng)驗(yàn)值
    }

    
}

main

public class Work2 {


    public static void main(String[] args) {
        //無(wú)參構(gòu)造結(jié)果
        Hero2 e= new Hero2();
        System.out.print("無(wú)參構(gòu)造的");
        System.out.println("經(jīng)驗(yàn)值為:"+e.EXP+" 時(shí),等級(jí)為:"+e.grade+" 級(jí)");

        
        //有參構(gòu)造結(jié)果
        int a=120000;
        Hero2 h = new Hero2(a);
        System.out.print("有參構(gòu)造的");
        for(int i = 1 ; i <=30 ; i++ ) {

            
            //System.out.println(i+"級(jí)經(jīng)驗(yàn)值:"+(30*(i*i*i+5*i)-80));//輸出1-30級(jí)每級(jí)的經(jīng)驗(yàn)值所需經(jīng)驗(yàn)
            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)驗(yàn)值為:"+h.EXP+" 時(shí),等級(jí)為:"+h.grade+" 級(jí)");
    }


}

Java習(xí)題結(jié)果

以上是兩道Java的習(xí)題及代碼,希望對(duì)同學(xué)們有所幫助。對(duì)Java感興趣的同學(xué)可以看一下教程

文章參考來(lái)源:blog.csdn.net/d694046387/java/article/details/107620181

0 人點(diǎn)贊