Re: [問題] 內部類別的用途?
: 推 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
推
12/19 15:02, , 1F
12/19 15:02, 1F
推
12/19 18:47, , 2F
12/19 18:47, 2F
推
12/19 20:43, , 3F
12/19 20:43, 3F
推
12/21 03:39, , 4F
12/21 03:39, 4F
推
12/21 11:57, , 5F
12/21 11:57, 5F
討論串 (同標題文章)
完整討論串 (本文為第 8 之 8 篇):
問題
3
6