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编辑过]