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