10.05.2014 Views

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

programación i - Universidad ORT Uruguay

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

72 Programación I<br />

this.setDolares(unMontoDolar);<br />

this.setCentavos(unMontoCentavos);<br />

}<br />

// acceso y modificación<br />

public int getCentavos() {<br />

return centavos;<br />

}<br />

public int getDolares() {<br />

return dolares;<br />

}<br />

public void setCentavos(int unMontoCentavos) {<br />

centavos = unMontoCentavos;<br />

}<br />

public void setDolares(int unMontoDolares) {<br />

dolares = unMontoDolares;<br />

}<br />

// impresion<br />

@Override<br />

public String toString() {<br />

return "$" + this.getDolares()+ "."+this.getCentavos();<br />

}<br />

// suma<br />

public Moneda sumar(MonedaS unaMoneda) {<br />

return new Moneda(this.getDolares()+unaMoneda.getDolares(),<br />

this.getCentavos()+ unaMoneda.getCentavos());<br />

}<br />

}<br />

Observemos en particular qué ocurre cuando se crea una moneda con 10 dólares y 4 centavos.<br />

¿Cómo se imprimirá? Saldrá $10.4, en vez de $ 10.04. Es necesario ajustar el método toString.<br />

También analicemos qué ocurre si sumamos 5 dólares 90 centavos con 4 dólares 50 centavos.<br />

Daría 9 dólares con 140 centavos. Es necesario entonces corregir el método de suma. Pensando<br />

a futuro, cuando se implemente el método para restar será necesario incluir la lógica para<br />

contemplar el caso de "pedirle" a los dólares, por ejemplo, si se desea restar 5 dólares 90<br />

centavos de 10 dólares, 3 centavos.<br />

Ante la complejidad que está tomando el diseño de esta clase es bueno replantearse si esta<br />

forma de almacenar por separado dólares y centavos resulta apropiada. Otra alternativa sería<br />

llevar "todo junto", en centavos:<br />

package moneda;<br />

public class Moneda {<br />

private int totalCentavos;<br />

public Moneda() {<br />

this.setTotalCentavos (0);<br />

}<br />

public Moneda(int centavos) {<br />

this.setTotalCentavos (centavos);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!