Cheatography
https://cheatography.com
Resumen sobre como implementar composición en Java usando arreglos.
Composición con arreglosEn la clase contenedora se declara un arreglo de la clase contenida | En la clase contenedora se agrega un método para insertar nuevos objetos de la clase contenida | En el constructor de la clase contenedora se necesita un parámetro que indique la cantidad máxima de objetos contenidos |
Clase contenedoraEs una clase común, con atributos y métodos habituales | Debe poseer al menos un arreglo donde se almacenan los objetos contenidos | No debe poseer métodos get y set para el arreglo |
Clase contenidaEs una clase común, con atributos y métodos habituales | No va a poseer ninguna referencia a la clase contenedora |
Declaraciónpublic class Contenedora {
private Contenida[] v;
}
|
Constructorpublic Contenedora (parámetros, int cantidad) {
...asignación de atributos...
v = new Contenida[cantidad];
}
|
El parámetro cantidad indica el tamaño del arreglo de objetos contenidos. El arreglo debe estar creado antes de agregar elementos, por lo tanto se lo crea durante la construcción.
| | InserciónLa clase contenedora debe poseer un método para agregar un nuevo elemento contenido | El método de inserción debe recibir como parámetro un objeto de la clase contenida | Por simplicidad el método no va a devolver nada | Para insertar se necesita recorrer el arreglo buscando el primer elemento que sea nulo | Cuando se lo encuentra, se asigna el nuevo objeto en ese lugar | Es imprescindible interrumpir el ciclo, si no, el nuevo objeto va a ocupar todo el arreglo porque se lo asignaría a todos los casilleros vacios. | public void agregar(Contenida nuevo){ for (int i=0; i < v.length; i++) if(v[i] == null) { v[i] = nuevo; break; } }
|
RecorridosCuando se necesite obtener información de los elementos almacenados, debe recorrerse el arreglo con for o for mejorado | Para ello se agrega a la clase contenedora un método por cada resultado que se requiera | Los resultados nunca deben mostrarse en esta clase, únicamente deben ser retornados. | Si necesita un dato externo (por ejemplo, para una búsqueda) debe ser recibido por parámetro | En el ciclo que recorra el arreglo, debería verificarse que no haya elementos nulos. | public int recorrido() { for (Contenida c: v) { if (c != null) { .... } return ...; }
|
|
Created By
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by diegojserrano