2008-05-17

货币类

package org.kingda.book.basicoop.inheritance
{
 import flash.display.Sprite;

 public class SampleInheritance extends Sprite
 {
  public function SampleInheritance() {
   var rmb:Money = new Money();
   var dollar:Dollar = new Dollar();
   var euro:Euro = new Euro();
   rmb.exchange(100);
   dollar.exchange(100);
   euro.exchange(100);
   usemoney(rmb);  
   usemoney(dollar); //使用Dollar子类实例
   usemoeny(euro);  //使用Euro子类实例
  }
  
  private function usemoney(o:Money):void {}
  
 }
}
//货币
class Money {
 protected var _name:String; //币名
 protected var _rate:Number; //汇率
 public function Money() {
  init();  
 }
 protected function init():void {
  _name = "RMB(Default)"; //默认人民币
  _rate = 1;
 }
 //汇率转换:将输入的货币数量兑换成人民币
 public function exchange(num:Number):void {
  trace ( _name + ":" + (num * _rate));
 }
}
//美元
class Dollar extends Money {
 override protected function init():void {
  _name = "USD";//美元
  _rate = 7.68;
 }
}
//欧元
class Euro extends Money {
 override protected function init():void {
  _name = "EUR";//欧元
  _rate = 10.43;
 }
}

评论
Nighthaven 2008-05-17
放下每种货币都是一个单独的类这种设计问题不说,java标准库的Currency类是内置了ISO 4217的全套货币/国家对照表的。为了交流的方便,最好不要使用自创的货币代码,例如人民币的代码是“CNY”而不是“RMB”。
发表评论

您还没有登录,请登录后发表评论

hereson
搜索本博客
我的相册
最近加入圈子
存档
最新评论