看板 java 關於我們 聯絡資訊
: 推 etman395:很清楚~要是能寫上個範例程式就更清楚了 1D 12/19 13 : → adrianshum:太貪心了 =_= 12/19 14 隨手寫的,就不解釋了。 godfat ~/p/t/java> java Strategy Monster@4ed9ff hp after walking: 9 Monster@4ed9ff hp after jumping: 8 Monster@4ed9ff got mad. Monster@4ed9ff hp after walking: 6 Monster@4ed9ff hp after jumping: 3 godfat ~/p/t/java> cat Strategy.java import static java.lang.System.out; class Monster{ public Monster(){ hp_ = 10; mood_ = new Happy(); } public void walk(){ mood_.walk(); out.printf("%s hp after walking: %d\n", this, hp_); } public void jump(){ mood_.jump(); out.printf("%s hp after jumping: %d\n", this, hp_); } public void got_mad(){ mood_ = new Mad(); out.printf("%s got mad.\n", this); } protected abstract class Mood{ abstract void walk(); void jump(){ hp_ -= 1; } }; private class Mad extends Mood{ void walk(){ hp_ -= 2; } void jump(){ hp_ -= 2; super.jump(); } } private class Happy extends Mood{ void walk(){ hp_ -= 1; } } private Mood mood_; private int hp_; } class Strategy{ public static void main(String[] args){ Monster m = new Monster(); m.walk(); m.jump(); m.got_mad(); m.walk(); m.jump(); } } -- Hear me exalted spirits. Hear me, be you gods or devils, ye who hold dominion here: I am a wizard without a home. I am a wonderer seeking refuge. Sacrifice -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.28.18
etman395:沒寫註解要推好久..晚點來看1D 12/19 15:02
psalter:寫Swing的Listener就常有機會用inner class 12/19 18:47
carlcarl:嗯嗯 我覺得listener用這個比較方便 12/19 20:43
killeryagami:this是指此物件嗎 ? 會print出什麼 @@? 12/21 03:39
sunneo:我猜應該會叫用到隱藏的 .toString 印出類別名稱 12/21 11:57