下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實驗報告課程: 設(shè)計模式實驗 學(xué)期: 2010-2011學(xué)年 第一學(xué)期 任課教師: 專業(yè): 學(xué)號: 姓名: 成績: 實驗1 策略模式1.題目: 在教材25頁上,有一堆雜亂的類與接口,選取自一個動作冒險游戲。我們能看到代表游戲角色的類和角色可以使用的武器行為的類。每個角色一次只能使用一種武器,但是可以在游戲的過程中換武器,使用策略模式完成實驗要求。2.模式設(shè)計的UML類圖:3.程序源代碼:(1)角色抽象類Character.java: public abstract class Character WeaponBehavior weaponBehavior; public Character()
2、; public abstract void display(); public void fight() /委托給行為類 weaponBehavior.useWeapon(); public void setWeaponBehavior(WeaponBehavior wb) /設(shè)置武器類型 weaponBehavior = wb; (2)繼承角色抽象類的各個子類:public class King extends Characterpublic King() weaponBehavior = new SwordBehavior(); /初始化武器類型 public void display(
3、) System.out.print(King: );public class Queen extends Character public Queen() weaponBehavior = new KnifeBehavior(); /初始化武器類型 public void display() System.out.print(Queen: ); public class Knight extends Characterpublic Knight() weaponBehavior = new BowAndArrowBehavior(); /初始化武器類型 public void display
4、() System.out.print(Knight: );public class Troll extends Characterpublic Troll() weaponBehavior = new AxeBehavior(); /初始化武器類型 public void display() System.out.print(Troll: );(3)武器行為的接口WeaponBehavior.java:public interface WeaponBehavior public void useWeapon();(4)實現(xiàn)武器行為接口的各個子類:public class AxeBehavio
5、r implements WeaponBehaviorpublic void useWeapon() System.out.println(用斧頭砍劈! (AxeBehavior);public class BowAndArrowBehavior implements WeaponBehavior public void useWeapon() System.out.println(用弓箭射擊! (BowAndArrowBehavior)); public class KnifeBehavior implements WeaponBehavior public void useWeapon()
6、 System.out.println(用匕首刺殺! (KnifeBehavior)); public class SwordBehavior implements WeaponBehaviorpublic void useWeapon() System.out.println(用寶劍刺殺! (SwordBehavior));(5)角色打斗的主類CharacterFight.java:public class CharacterFight public static void main(String args) Character king = new King();Character que
7、en = new Queen();Character knight = new Knight();Character troll = new Troll();king.display();System.out.print(妖怪過來了,讓我);king.fight();queen.display();System.out.print(我手里有匕首,我);queen.fight();troll.display();System.out.print(哈哈,我不怕你們,我);troll.fight();knight.display();System.out.print(國王小心,讓我);knight.
8、fight();king.display();System.out.print(你的射擊水平太差了,還是讓我來吧,我);king.setWeaponBehavior(new BowAndArrowBehavior();/更換武器king.fight(); troll.display();System.out.print(哈哈,你們完蛋了,我也有弓箭,);troll.setWeaponBehavior(new BowAndArrowBehavior(); /更換武器troll.fight();king.display();System.out.println(騎士,用你的斧頭啊!給我使勁劈死他。);knight.display();System.out.print(是,國王,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)三年級(中藥學(xué))中藥炮制學(xué)試題及答案
- 2025年中職食品加工工藝(食品罐頭)試題及答案
- 2025年高職信息管理與信息系統(tǒng)(數(shù)據(jù)庫應(yīng)用)試題及答案
- 2025年高職(中藥學(xué))中藥炮制技術(shù)階段測試題及答案
- 2025年中職康復(fù)技術(shù)(作業(yè)治療技術(shù))試題及答案
- 2025年大學(xué)本科四年級(旅游管理)旅游規(guī)劃與開發(fā)測試題及答案
- DB62-T 4963-2024 地質(zhì)災(zāi)害警示牌技術(shù)規(guī)范
- 中職第二學(xué)年(會計基礎(chǔ))原始憑證處理2026年綜合測試題及答案
- 2025年大學(xué)青少年社會工作(青少年服務(wù)實務(wù))試題及答案
- 2025年高職(林業(yè)技術(shù))森林培育技術(shù)綜合測試試題及答案
- NB-T20048-2011核電廠建設(shè)項目經(jīng)濟評價方法
- 4第四章 入侵檢測流程
- 鈀金的選礦工藝
- 人工智能在金融策略中的應(yīng)用
- JCT640-2010 頂進施工法用鋼筋混凝土排水管
- 赤壁賦的議論文800字(實用8篇)
- 高壓燃氣管道施工方案
- 輸變電工程技術(shù)標書【實用文檔】doc
- 南部山區(qū)仲宮街道鄉(xiāng)村建設(shè)規(guī)劃一張表
- GB/T 2652-1989焊縫及熔敷金屬拉伸試驗方法
- GB/T 25630-2010透平壓縮機性能試驗規(guī)程
評論
0/150
提交評論