最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基于面向?qū)ο髮?shí)現(xiàn)一個戰(zhàn)士小游戲

 更新時(shí)間:2022年07月13日 11:33:19   作者:我的目標(biāo)是開458  
這篇文章主要為大家詳細(xì)介紹了Java如何基于面向?qū)ο髮?shí)現(xiàn)一個戰(zhàn)士小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動手嘗試一下

設(shè)計(jì)一個游戲系統(tǒng),在該系統(tǒng)當(dāng)中擁有戰(zhàn)士 Soldier 角色;,每個角色擁有自己的名字 name 、等級 level、生命力 hp ,攻擊力 atk、防御力 def;,戰(zhàn)士都有普通攻擊行為 attack,其實(shí)現(xiàn)為根據(jù)自己的攻擊力減去 被攻擊對象的防御力 從而得到對方的失血量;,請?jiān)O(shè)計(jì)這個系統(tǒng)中有哪些類,分別有什么屬性和行為,有什么關(guān)聯(lián)關(guān)系,并在main方法中調(diào)用查看效果。

一、思路

首先,我們知道在系統(tǒng)中有個戰(zhàn)士的角色叫Soldier,Soldier角色擁有自己的名字、等級、生命力、攻擊力、防御力。我們就要區(qū)分有什么類型。戰(zhàn)士有個行為是普通攻擊,行為:方法。由此我們就知道到戰(zhàn)士Soldier是一個類,在進(jìn)行代碼實(shí)現(xiàn)。

二、代碼實(shí)現(xiàn)

當(dāng)我們得知Soldier屬于一個類是,我們是不是就應(yīng)該用面向?qū)ο髞磉M(jìn)行書寫?面向?qū)ο蟮闹匾娜齻€重點(diǎn)是什么:1、類2、屬性、3、方法。那當(dāng)我們知道了組成面向?qū)ο蟮娜齻€重點(diǎn)的第一個是類。首先,第一個用到的就是自定義的類,那我們將進(jìn)行代碼的實(shí)現(xiàn)吧。

public class Legend {//首字母大寫,見名思意
    public static void main(String[] args) {
        
    }
}
public class Soldier {//首字母大寫,見名思意
    //屬性
    //方法
}

當(dāng)我們生成了一個自定義的類時(shí),在最開始的時(shí)候我們說了面向?qū)ο笕齻€重點(diǎn)是由1、類2、屬性、3、方法。3種組成,那我們得知Soldier角色擁有自己的名字、等級、生命力、攻擊力、防御力,是一種屬性。那我們就應(yīng)該把名字、等級、生命力、攻擊力、防御力等屬性進(jìn)行填寫進(jìn)去。

public class Legend {//首字母大寫,見名思意
    public static void main(String[] args) {
        
    }
}
 
public class Soldier {//首字母大寫,見名思意
    //屬性
    public String name;//姓名
    public int level;//等級
    public int hp;//生命力
    public int atk;//攻擊力
    public int def;//防御力
    //方法
}

當(dāng)Soldier這個角色我們已經(jīng)創(chuàng)造出來了,是不是就應(yīng)該創(chuàng)建這個角色了?這時(shí)候就需要用到方法了。當(dāng)我們在使用構(gòu)造器的時(shí)候,類里會默認(rèn)產(chǎn)生一個無參構(gòu)造,無參:沒有參數(shù),構(gòu)造器就是一個函數(shù),跟類名相同:這是避免我們在書寫內(nèi)容時(shí)避免報(bào)錯。詳見圖一、圖二。在書寫時(shí)方法時(shí),也可以進(jìn)行快速的生成有參構(gòu)造的內(nèi)容。詳見圖二、圖三、圖四。

public class Legend {
    public static void main(String[] args) {
        Soldier yangke = new Soldier("yangke",50,500,68,2);//yangke的Soldier戰(zhàn)士實(shí)例
        Soldier zhangsan = new Soldier("zhangsan",50,400,68,4);//zhangsan的Soldier戰(zhàn)士實(shí)例
    }
}
 
public class Soldier {
    //屬性
    public String name;//姓名
    public int level;//等級
    public int hp;//生命力
    public int atk;//攻擊力
    public int def;//防御力
 
    //方法
    public Soldier(){//無參構(gòu)造
 
    }
    public Soldier(String name, int level, int hp, int atk, int def) {//有參構(gòu)造
        this.name = name;//姓名
        this.level = level;//等級
        this.hp = hp;//生命力
        this.atk = atk;//攻擊力
        this.def = def;//防御力
    }
}

圖一:

圖二:

圖三:

圖四:

圖五:

當(dāng)我們已經(jīng)生成了兩名不同玩家的Soldier,那每個戰(zhàn)士都有普通攻擊的行為,在最開始的時(shí)候我們都說了,行為就是等于方法,那方法是不是應(yīng)該書寫到Soldier戰(zhàn)士里面?肯定也要用yangke的Soldier來跟zhangsan的Soldier來進(jìn)行pk,那是不是要將zhangsan的Soldier引入到y(tǒng)angke的Soldier進(jìn)行pk?

public class Legend {
    public static void main(String[] args) {
        Soldier yangke = new Soldier("yangke",50,500,68,2);//yangke的Soldier戰(zhàn)士實(shí)例
        Soldier zhangsan = new Soldier("zhangsan",50,400,68,4);//zhangsan的Soldier戰(zhàn)士實(shí)例
        yangke.attack(zhangsan);//將zhangsan的Soldier引入到y(tǒng)angke的Soldier里面并有一個public void attack進(jìn)行接收
    }
}
public class Soldier {
    //屬性
    public String name;//姓名
    public int level;//等級
    public int hp;//生命力
    public int atk;//攻擊力
    public int def;//防御力
 
    //方法
    public Soldier(){//無參構(gòu)造
 
    }
    public Soldier(String name, int level, int hp, int atk, int def) {//有參構(gòu)造
        this.name = name;//姓名
        this.level = level;//等級
        this.hp = hp;//生命力
        this.atk = atk;//攻擊力
        this.def = def;//防御力
    }
    public void attack(Soldier other){//當(dāng)主函數(shù)將zhangsan的Soldier引入到y(tǒng)angke的Soldier里面我們要進(jìn)行一個接收
        int Damage = this.atk-other.def;//設(shè)置一個傷害的計(jì)算 Damage肯定等于yangke的攻擊力-zhangsan的防御力
        other.hp-=Damage;//再用zhangsan的血量減去傷害得到zhangsan的血量
        if (other.hp <= 0){//如果zhangsan的血量少于等于0時(shí),zhangsan陣亡,如果沒有進(jìn)行顯示傷害數(shù)據(jù)
            System.out.println(other.name+"已經(jīng)陣亡");
        }else {
            System.out.println("成功普通攻擊了"+other.name+"并對它造成了"+Damage+"傷害"+other.name+"還剩"+other.hp+"血量");
        }
 
    }
}

最終結(jié)果

以上就是Java基于面向?qū)ο髮?shí)現(xiàn)一個戰(zhàn)士小游戲的詳細(xì)內(nèi)容,更多關(guān)于Java戰(zhàn)士小游戲的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • jdbc中class.forname的作用

    jdbc中class.forname的作用

    這篇文章主要介紹了jdbc中class.forname的作用,使用示例說明了他作用及使用方法,大家參考使用吧
    2014-01-01
  • Java 在Excel單元格中應(yīng)用一種/多種字體樣式(實(shí)例代碼)

    Java 在Excel單元格中應(yīng)用一種/多種字體樣式(實(shí)例代碼)

    這篇文章主要介紹了Java 在Excel單元格中應(yīng)用一種/多種字體樣式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • SpringBoot后端上傳文件類型檢測方式

    SpringBoot后端上傳文件類型檢測方式

    這篇文章主要介紹了SpringBoot后端上傳文件類型檢測方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • ?Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器

    ?Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器

    這篇文章主要介紹了Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器,下面文章圍繞Java圖形化界面編程實(shí)現(xiàn)簡單計(jì)算器的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-01-01
  • MyBatis中useGenerateKeys的使用解析

    MyBatis中useGenerateKeys的使用解析

    這篇文章主要介紹了MyBatis中useGenerateKeys的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java數(shù)據(jù)結(jié)構(gòu)與算法之插入算法實(shí)現(xiàn)數(shù)值排序示例

    java數(shù)據(jù)結(jié)構(gòu)與算法之插入算法實(shí)現(xiàn)數(shù)值排序示例

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之插入算法實(shí)現(xiàn)數(shù)值排序的方法,結(jié)合簡單實(shí)例形式分析了插入算法的節(jié)點(diǎn)操作與排序相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-08-08
  • SpringBoot中使用?POI的示例代碼

    SpringBoot中使用?POI的示例代碼

    這篇文章主要介紹了SpringBoot中使用POI的實(shí)例詳解,包括引入poi的jar包和創(chuàng)建excel的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Java中String和StringBuffer及StringBuilder?有什么區(qū)別

    Java中String和StringBuffer及StringBuilder?有什么區(qū)別

    這篇文章主要介紹了Java中String和StringBuffer及StringBuilder?有什么區(qū)別,String?是?Java?語言非常基礎(chǔ)和重要的類,更多相關(guān)內(nèi)容需要的小伙伴可以參考下面文章內(nèi)容
    2022-06-06
  • java 使用poi動態(tài)導(dǎo)出的操作

    java 使用poi動態(tài)導(dǎo)出的操作

    這篇文章主要介紹了java 使用poi動態(tài)導(dǎo)出的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Java并發(fā)編程之線程之間的共享和協(xié)作

    Java并發(fā)編程之線程之間的共享和協(xié)作

    這篇文章主要介紹了Java并發(fā)編程之線程之間的共享和協(xié)作,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04

最新評論

福安市| 宽甸| 周口市| 南郑县| 沾益县| 阜阳市| 长沙县| 施秉县| 河东区| 荆州市| 古丈县| 光泽县| 彭泽县| 会昌县| 紫金县| 开江县| 麻城市| 雅安市| 盐城市| 临西县| 克山县| 墨江| 水城县| 河南省| 云和县| 香河县| 得荣县| 鄱阳县| 曲松县| 商城县| 赤水市| 长兴县| 张家川| 武陟县| 治多县| 中方县| 咸宁市| 湟源县| 桂林市| 芒康县| 徐闻县|