SlideShare uma empresa Scribd logo
1 de 7
Recorrer Objetos dentro de
Objetos
@josefabiandiaz
Planeta – Nave - Persona

 Un problema común en trabajo con

Objetos en la necesidad de recorrer clases
que se encuentran al interior de otras clases.
Incluso muchas veces estas clases son
Vectores completos que deben ser accedidos
sucesivamente.

Public class Planeta{
String nombre;
Nave [] visitantes;
}
Public class Nave{
String nombre;
Persona [] tripulantes;
}
Public class Persona{
String nombre;
}
Un paso mas lejos de Get

 Para simplificar los códigos se acostumbra
a dotar las clases de sus propios métodos de
recorrido que no consiste solo en recuperar el
valor de la propiedad con Get.

Al interior de la clase Nave
public String ImprimirTripulantes()
{
String cadena="";
for (int i = 0; i < tripulantes.length; i++) {
cadena=cadena +
tripulante[i].getNombre() + "n";
}
return cadena;
}
No imprimir lo que no hay

 Si hay dudas que exista un valor al interior
de los vectores a recorrer, se debe verificar la
diferencia con el null y posteriormente
recorrerlo.

Al interior de la clase Planeta
public String ImprimirNaves(){
String cadena="";
if(visitantes!=null)
{
for (int i = 0; i < visitantes.length; i++)
{
cadena=cadena + visitantes[i].getNombre()+
"n" ;
}}else {cadena="sin visitantes";}
return cadena;
}
Todo en uno

 Cuando se tiene un anidamiento(clases
dentro de clases) de varios niveles. Es posible
emplear un método que agrupe recorridos
con una sola invocación.

Al interior de la clase Planeta
public String ImprimirCompleto(){
String cadena="";
if(visitantes!=null)
{
for (int i = 0; i < visitantes.length; i++)
{cadena=cadena + "Nombre nave: ";
cadena=cadena + visitantes[i].getNombre()+
"n" ;
cadena=cadena +
visitantes[i].ImprimirTripulantes();
}}else {cadena="sin visitantes";}
return cadena;
}
Llegando de Uno en Uno
 Hay casos que es necesario agregar
al vector atributo de una clase un

elemento de uno en uno. Lo que es un
problema al ser un vector estático.
Para solucionarlo se realiza lo siguiente.
Importante: Una mejor practica es emplear
la librerías collection de Java

Al interior de la clase Planeta
public void AgregarVisitante(Nave visitantenuevo){
if(visitantes==null){
visitantes=new Nave[1];
visitantes[0]=visitantenuevo;
}else{
Nave [] temp=new Nave[visitantes.length + 1];
for (int i = 0; i < temp.length-1; i++) {
temp[i]=visitantes[i];
}
temp[temp.length-1]=visitantenuevo;
visitantes=temp;
}
}
Consultas:

José Fabián Diaz
Silva

@josefabiandiaz
josefabiandiazs@gmail.com
https://www.youtube.com/user/fabiandiazs

Mais conteúdo relacionado

Mais procurados

1 plantilla plan_desarrollo_software
1 plantilla plan_desarrollo_software1 plantilla plan_desarrollo_software
1 plantilla plan_desarrollo_software
LAS AMERICAS
 
Comparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y DistribuidaComparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y Distribuida
Sergio Olivares
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
Jsrfs Montemayor
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
Julicamargo
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
Roberth Loaiza
 
Métricas de procesos y proyectos
Métricas de procesos y proyectosMétricas de procesos y proyectos
Métricas de procesos y proyectos
jose_macias
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
joshell
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidos
drianda
 

Mais procurados (20)

Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Replicación con sql server
Replicación con sql serverReplicación con sql server
Replicación con sql server
 
1 plantilla plan_desarrollo_software
1 plantilla plan_desarrollo_software1 plantilla plan_desarrollo_software
1 plantilla plan_desarrollo_software
 
Comparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y DistribuidaComparativa Arquitectura Cliente/Servidor y Distribuida
Comparativa Arquitectura Cliente/Servidor y Distribuida
 
Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3Modelo Del Negocio con RUP y UML Parte 3
Modelo Del Negocio con RUP y UML Parte 3
 
Rational rose
Rational roseRational rose
Rational rose
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
 
Procedimientos Almacenados SQL SEVER.pptx
Procedimientos Almacenados SQL SEVER.pptxProcedimientos Almacenados SQL SEVER.pptx
Procedimientos Almacenados SQL SEVER.pptx
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 
Sql ejercicios resueltos
Sql ejercicios resueltosSql ejercicios resueltos
Sql ejercicios resueltos
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Métricas de procesos y proyectos
Métricas de procesos y proyectosMétricas de procesos y proyectos
Métricas de procesos y proyectos
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De Negocio
 
Ejemplo Desarrollo Factibilidad Operativa
Ejemplo Desarrollo Factibilidad OperativaEjemplo Desarrollo Factibilidad Operativa
Ejemplo Desarrollo Factibilidad Operativa
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionales
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidos
 

Semelhante a Recorrer objetos - Java

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
ale8819
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
jent46
 
Clase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpooClase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpoo
jorg_marq
 

Semelhante a Recorrer objetos - Java (20)

Tema2
Tema2Tema2
Tema2
 
Objetos con atributos de vectores
Objetos con atributos de vectoresObjetos con atributos de vectores
Objetos con atributos de vectores
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Poo
PooPoo
Poo
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
Java
JavaJava
Java
 
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOSJAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
JAVA ORIENTADO A OBJETOS - CLASES Y OBJETOS
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Clase 2
Clase 2 Clase 2
Clase 2
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Clase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpooClase2 ejemplosdeenumpoo
Clase2 ejemplosdeenumpoo
 
Sobrecarga de Métodos y Constructores.pdf
Sobrecarga de Métodos y Constructores.pdfSobrecarga de Métodos y Constructores.pdf
Sobrecarga de Métodos y Constructores.pdf
 
Tema5
Tema5Tema5
Tema5
 
JAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOSJAVA OO - TEMA 01 - CLASES Y OBJETOS
JAVA OO - TEMA 01 - CLASES Y OBJETOS
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ec
 

Mais de Jose Diaz Silva

Ciclos de vida orientados a objetos
Ciclos de vida orientados a objetosCiclos de vida orientados a objetos
Ciclos de vida orientados a objetos
Jose Diaz Silva
 

Mais de Jose Diaz Silva (20)

Mantenimiento de sistemas de información - Conceptos Avanzados
Mantenimiento de sistemas de información   - Conceptos AvanzadosMantenimiento de sistemas de información   - Conceptos Avanzados
Mantenimiento de sistemas de información - Conceptos Avanzados
 
Caracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetos
 
Modding PC
Modding PCModding PC
Modding PC
 
Actividad ssh final - Ubuntu
Actividad ssh final - UbuntuActividad ssh final - Ubuntu
Actividad ssh final - Ubuntu
 
Problemas en pruebas de implantacion
Problemas en pruebas de implantacionProblemas en pruebas de implantacion
Problemas en pruebas de implantacion
 
Mother board tarjeta madre - elementos varios
Mother board   tarjeta madre - elementos variosMother board   tarjeta madre - elementos varios
Mother board tarjeta madre - elementos varios
 
Ciclos de vida orientados a objetos
Ciclos de vida orientados a objetosCiclos de vida orientados a objetos
Ciclos de vida orientados a objetos
 
Pruebas de implantación del Software
Pruebas de implantación del SoftwarePruebas de implantación del Software
Pruebas de implantación del Software
 
SSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia SeguraSSH en Ubuntu - Transferencia Segura
SSH en Ubuntu - Transferencia Segura
 
Metodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XPMetodologías ágiles para el desarrollo de software - XP
Metodologías ágiles para el desarrollo de software - XP
 
Taller Crontab - Ubuntu
Taller Crontab  - UbuntuTaller Crontab  - Ubuntu
Taller Crontab - Ubuntu
 
Capacitacion implantacion de Software
Capacitacion implantacion de SoftwareCapacitacion implantacion de Software
Capacitacion implantacion de Software
 
Programar tareas crontab en Ubuntu
Programar tareas  crontab en UbuntuProgramar tareas  crontab en Ubuntu
Programar tareas crontab en Ubuntu
 
Errores y fracasos en la implantación de Software
Errores y fracasos en la implantación de SoftwareErrores y fracasos en la implantación de Software
Errores y fracasos en la implantación de Software
 
Tipos de memoria del computador - Compendio
Tipos de memoria del computador - CompendioTipos de memoria del computador - Compendio
Tipos de memoria del computador - Compendio
 
Llenado de combobox vs2010 y oracle xe
Llenado de combobox vs2010 y oracle xeLlenado de combobox vs2010 y oracle xe
Llenado de combobox vs2010 y oracle xe
 
Sistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - CompendioSistema de archivos y directorios - Ubuntu - Compendio
Sistema de archivos y directorios - Ubuntu - Compendio
 
Puertos de un computador - Compendio
Puertos de un computador - CompendioPuertos de un computador - Compendio
Puertos de un computador - Compendio
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccion
 
Modelo de diseño - conceptos finales
Modelo de diseño  - conceptos finalesModelo de diseño  - conceptos finales
Modelo de diseño - conceptos finales
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Recorrer objetos - Java

  • 1. Recorrer Objetos dentro de Objetos @josefabiandiaz
  • 2. Planeta – Nave - Persona  Un problema común en trabajo con Objetos en la necesidad de recorrer clases que se encuentran al interior de otras clases. Incluso muchas veces estas clases son Vectores completos que deben ser accedidos sucesivamente. Public class Planeta{ String nombre; Nave [] visitantes; } Public class Nave{ String nombre; Persona [] tripulantes; } Public class Persona{ String nombre; }
  • 3. Un paso mas lejos de Get  Para simplificar los códigos se acostumbra a dotar las clases de sus propios métodos de recorrido que no consiste solo en recuperar el valor de la propiedad con Get. Al interior de la clase Nave public String ImprimirTripulantes() { String cadena=""; for (int i = 0; i < tripulantes.length; i++) { cadena=cadena + tripulante[i].getNombre() + "n"; } return cadena; }
  • 4. No imprimir lo que no hay  Si hay dudas que exista un valor al interior de los vectores a recorrer, se debe verificar la diferencia con el null y posteriormente recorrerlo. Al interior de la clase Planeta public String ImprimirNaves(){ String cadena=""; if(visitantes!=null) { for (int i = 0; i < visitantes.length; i++) { cadena=cadena + visitantes[i].getNombre()+ "n" ; }}else {cadena="sin visitantes";} return cadena; }
  • 5. Todo en uno  Cuando se tiene un anidamiento(clases dentro de clases) de varios niveles. Es posible emplear un método que agrupe recorridos con una sola invocación. Al interior de la clase Planeta public String ImprimirCompleto(){ String cadena=""; if(visitantes!=null) { for (int i = 0; i < visitantes.length; i++) {cadena=cadena + "Nombre nave: "; cadena=cadena + visitantes[i].getNombre()+ "n" ; cadena=cadena + visitantes[i].ImprimirTripulantes(); }}else {cadena="sin visitantes";} return cadena; }
  • 6. Llegando de Uno en Uno  Hay casos que es necesario agregar al vector atributo de una clase un elemento de uno en uno. Lo que es un problema al ser un vector estático. Para solucionarlo se realiza lo siguiente. Importante: Una mejor practica es emplear la librerías collection de Java Al interior de la clase Planeta public void AgregarVisitante(Nave visitantenuevo){ if(visitantes==null){ visitantes=new Nave[1]; visitantes[0]=visitantenuevo; }else{ Nave [] temp=new Nave[visitantes.length + 1]; for (int i = 0; i < temp.length-1; i++) { temp[i]=visitantes[i]; } temp[temp.length-1]=visitantenuevo; visitantes=temp; } }