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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programación I 113<br />

12.1.9.3 Nociones de Interface<br />

Una interface es una colección de métodos abstractos y constantes. No son clases, pero se<br />

pueden usar como tal. Es un conjunto de prototipos de métodos, sin información de<br />

implementación asociada.<br />

Se define:<br />

interface nombreXX{<br />

constantes;<br />

metodos abstractos ;<br />

}<br />

Una clase implementa una interface dando la implementacion de cada uno de los métodos<br />

definidos en esa interface. Para indicarlo, se pone:<br />

class YY implements nombreXX{<br />

...}<br />

Las interfaces sirven para que objetos de diferentes clases, no relacionadas, se traten de la<br />

misma forma. Permite que dos clases completamente independientes tengan un mismo conjunto<br />

de métodos definidos en forma diferente.<br />

No es herencia múltiple: en herencia múltiple recibo y re-uso código, acá no se recibe ni re-usa<br />

código.<br />

Una clase puede implementar varias interfaces.<br />

¿Para qué métodos abstractos e interfaces? En particular en este ejemplo, debo indicarle el<br />

criterio de ordenación. Por ejemplo el método que ordena (Collections.sort) tiene que saber si<br />

un objeto es menor que otro, que relación tienen entre ellos. Asume que se usa el orden natural.<br />

¿Cómo se llama el método? ¿Qué formato tiene? Pensemos en el método sort. ¿Cómo hace para<br />

indicar que internamente cuando compara va a usar el método “X”?. Para ello es que están<br />

definidas las interfaces. En este caso se llama interface Comparable. Allí declaro cuál es el<br />

formato que espero que tenga un método (y así lo usa internamente en este caso el método sort).<br />

Aquel que quiera usar el método sort tendrá que dar el código de ese método. Para decir que<br />

está dando la implementación a ese método, se debe indicar que implementa esa interface y dar<br />

el código del método compareTo.<br />

12.1.9.4 Uso del Collections.sort<br />

En la clase Casa:<br />

public ArrayList ordenar() {<br />

// Ordeno por orden natural<br />

// Internamente usa compareTo() definido en Comparable<br />

//<br />

Collections.sort(devolverTodosGastos());<br />

return devolverTodosGastos();<br />

}

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

Saved successfully!

Ooh no, something went wrong!