Cheatography
https://cheatography.com
Resumen sobre como implementar composición en Java usando arreglos.
Composición con arreglos
En 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 contenedora
Es 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 contenida
Es una clase común, con atributos y métodos habituales |
No va a poseer ninguna referencia a la clase contenedora |
Declaración
public class Contenedora {
private Contenida[] v;
}
|
Constructor
public 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ón
La 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; } }
|
Recorridos
Cuando 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