programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
programación i - Universidad ORT Uruguay
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 />
}