课外天地 李树青学习天地Java程序语言课件 → 程序代码——基于面向对象编程方法的货币处理程序


  共有16682人关注过本帖树形打印复制链接

主题:程序代码——基于面向对象编程方法的货币处理程序

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1940 积分:26616 威望:0 精华:34 注册:2003/12/30 16:34:32
程序代码——基于面向对象编程方法的货币处理程序  发帖心情 Post By:2008/11/8 22:39:36 [只看该作者]

import java.util.Locale;

interface ICurrency {
        public int getAmount();

        public void setAmount(int amount);

        public Locale getSign();

        public void setSign(Locale sign);

        public String toString();
}

abstract class Currency implements ICurrency {
        private int amount;

        private Locale sign;

        public Currency() {

        }

        public Currency(Locale sign, int amount) {
                setSign(sign);
                setAmount(amount);

        }

        public int getAmount() {
                return amount;
        }

        public void setAmount(int amount) {
                this.amount = amount;
        }

        public Locale getSign() {
                return sign;
        }

        public void setSign(Locale sign) {
                this.sign = sign;
        }

        public String toString() {
                java.text.DecimalFormat nf = new java.text.DecimalFormat("¤.0000");
                nf.setCurrency(java.util.Currency.getInstance(sign));
                return nf.format(amount);
        }
}

class Dollar extends Currency {
        public Dollar() {
                setSign(Locale.US);
        }

        public Dollar(int amount) {
                super(Locale.US, amount);
        }
}


class France extends Currency{
        public France() {
                setSign(Locale.FRANCE);
        }

        public France(int amount) {
                super(Locale.FRANCE, amount);
        }
}

class Yuan extends Currency {
        public Yuan() {
                setSign(Locale.CHINA);
        }

        public Yuan(int amount) {
                super(Locale.CHINA, amount);
        }
}

class Transaction {
        public void process(Currency yuan) {
                System.out.println(yuan);
        }
}

public class Exec {
        public static void main(String args[]) {
                Transaction trans = new Transaction();

                trans.process(new France(1234));

        }
}

[此贴子已经被作者于2010-12-12 08:28:44编辑过]

 回到顶部