這次我們來看乙個小案例,有player類、gun類、bullet類、clip類,還有乙個測試類。需求是人用槍攻擊另乙個人,我們需要用到物件導向的思想來進行。
首先看一下這個uml類圖:
然後我們來看具體的**實現:
package com.tedu.yadx.day17;
/** * 子彈類
* @author qwf91
* */
public class bullet
public bullet(int hurt)
//子彈擊中敵人
public void hitenemy(player enemy)
}
package com.tedu.yadx.day17;
/** * 彈夾類
* @author qwf91
* */
public class clip
public clip(int capacity)
//裝子彈
public void pushbullet(bullet bullet)
magazine[surplus] = bullet;
surplus++;
showclip();
}//卸子彈
public bullet popbullet()
bullet bullet = magazine[surplus - 1];
magazine[surplus - 1] = null;
surplus--;
showclip();
return bullet;
}//顯示彈夾資訊
public void showclip()
}
package com.tedu.yadx.day17;
/** * 槍類
* @author qwf91
* */
public class gun
public gun(clip clip)
//裝彈夾
public void loadclip(clip clip)
//開槍
public void shootenemy(player enemy)
bullet bullet = clip.popbullet();
if(bullet == null)
bullet.hitenemy(enemy);
}//顯示槍械資訊
public void showgun()else}}
package com.tedu.yadx.day17;
/** * 玩家類
* @author qwf91
* */
public class player
public player(string name)
public player(string name,int blood)
public void holdgun(gun gun)
public void shootenemy(player enemy)
gun.shootenemy(enemy);
}public void loadclip(clip clip)
gun.loadclip(clip);
}public void damage(int hurt)
blood-=hurt;
if(blood<=0)
showplayer();
}public void showplayer()
}
package com.tedu.yadx.day17;
/** * 測試類
* @author qwf91
* */
public class test
p1.loadclip(clip);
for(int i = 1;i <= 15;i++)}}
關於每乙個類,**裡面都寫的很清楚,唯一要說的就是最後乙個測試類,我們建立出來clip類的物件,然後彈夾需要裝子彈,子彈的數量由自己決定。 物件導向思想(一)
1.什麼是物件導向思想?2.類和物件 3.物件導向程式設計的三大特性 1.什麼是物件導向思想?確確的說,還沒有人能為物件導向給出乙個全面的定義 至少到目前為止我沒發現有,以後可能更難了定義,因為物件導向擴充套件涵蓋到領域越來越廣泛了。我是這麼理解的 物件導向思想就是把世界看作是由各種各樣具有自己內部...
使用物件導向程式設計思想實現乙個猜拳遊戲
今天的任務是通過控制台方式實現乙個人機對戰的猜拳遊戲,使用者通過輸入 1.剪刀 2.石頭 3.布 機器隨機生成 1.剪刀 2.石頭 3.布 勝者積分,n 局以後通過積分的多少判定勝負。思路 1 定義需要的各屬性 private static int person 0 使用者轉 數字 private ...
C 物件導向思想(一)
相比c,c 多出來一些東西來,類定義 繼承 過載 覆蓋 類動態編譯 抽象類虛函式 模板。這些東西非常有用,但怎麼用,像我這種小白,就有些難過了,世界最遙遠的距離就是雖然學習了物件導向,可是用起來還是如同面向過程一樣粗暴 首先我們需要了解什麼是物件導向思想 物件便是我們接觸的事物,有屬性有動作。而物件...