1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| public class Money {
public static short scale = 100;
protected long value;
public Money(long dollar, int cents) {
value = (dollar * scale) + cents;
}
public long dollars() {
return value / scale;
}
public short cents() {
return (short) ((value * 100) / scale - (100 * dollars()));
}
public Money add(Money rs) {
return new Money(this).addSet(rs);
}
public Money sub(Money rs) {
return new Money(this).subSet(rs);
}
private Money addSet(Money rs) {
value += rs.value;
return this;
}
protected Money subSet(Money rs) {
value -= rs.value;
return this;
}
} |