SlideShare una empresa de Scribd logo
MÓDULO 3INTRODUCCIÓN A JAVA3.1 BASES DEL LENG. JAVA40 HORASJesús Muñozjesus@iluego.com
Contenidos tema 3 – Introducción a JavaComenzamosBases del lenguaje JavaProgramación Orientada a Objetos (OOP)Clases y objetosCreando clasesPaquetes y java classpathJavabeansHerenciaClases abstractas e interfacesPolimorfismoClases internasExcepcionesLoggingNetworking2
Bases del lenguaje Java3Bases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
4Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
5Input desde keyboardAl final de este tema, debereis saber:Crear un programa usando la línea de comandos y la consolaDiferenciar entre syntax-errors y runtime errorsCrear un programa java usando Eclipse / NetBeans
6Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
7Estructuras de controlDecision Control Structuresifif-elseif – else ifswitchRepetition Control Structureswhiledo-whileforBranching Statementsbreakcontinuereturn
8Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
9ArraysQué es un array
Declaración de un array
Instanciación de un array
Acediendo elementos del array
Longitud de un array
Arrays multi-dimensionales10ArraysQué es un arraySuponemos que tenemos 3 variables de tipo int con diferentes identificadores para cada variable.int number1;int number2;int number3;number1 = 1;number2 = 2;number3 = 3;Como puedes ver, parece una tarea tediosa para inicializar y usar las variables, especialmente si son usadas para el mismo fin.
11ArraysQué es un arrayEn Java y en otros lenguajes de programación, hay una capacidad en la cual se puede usar una variable para guardar una lista de datos y manipularlos más eficientemente. Este tipo de variable es llamado array.Un array guarda múltiples datos en el mismo tipo de datos, en un bloque contiguo en memoria, dividido en un número de slots o casillas.
12ArraysDeclaración de un arrayPara declarar un array, escribir el tipo de datos seguido por un corchete [], seguidos por el identificador o nombre:Por ejemplo:int []ages;o	int ages[];
13ArraysInstanciación de un arrayDespués de declararlo, debemos crear el array y especificar su longitud mediante el constructor.Definiciones:	InstanciaciónEn java, esto significa creación:	ConstructorPara instanciar un objeto, necesitamos usar un constructor. Un constructor es un método que es llamado para crear un cierto objeto:	Lo veremos más adelante
14ArraysInstanciación de un arrayPara instanciar (o crear) un array, escribir la nueva palabra clave, seguida de corchetes conteniendo el número de elementos que queremos en el array.Por ejemplo://declarationint ages[];//instantiate objectages = new int[100];or, can also be written as,//declare and instantiate objectint ages[] = new int[100];
15ArraysAccediendo elementos de un arrayPara acceder un elemento de un array o una parte de un array se puede usar un número, que actúa como índice.Este índice:Asignado a cada miembro del array, para permitir al programa el acceso a un miembro individual del array
Comienza en cero y progresa secuencialmente por números enteros hasta el final del array (o hacia el inicio si comienza con la longitud menos uno
Los elementos dentro del array van desde cero hasta (sizeOfArray – 1)16ArraysAccediendo elementos de un arrayPor ejemplo, dado el array que declaramos anteriormente, tenemos://assigns 10 to the first element in the arrayages[0] = 10;//prints the last element in the arraySystem.out.print(ages[99]);
17ArraysAccediendo elementos de un arrayImportante:Una vez que el array es declarado y constuido, el valor guardado de cada miembro del array es inicializado a cero para los arrays numéricos
Para los tipos de datos por referencia, como Strings, no son inicializados a valor vacío “”. Por ello, se deben trasladar los arrays de Strings de manera explícita.18ArraysAccediendo elementos de un arrayEl siguiente código es un ejemplo de cómo imprimir en consola todos los elementos del array. Usamos un bucle for, así tenemos menos líneas de código.public class ArraySample{public static void main( String[] args ){int[] ages = new int[100];for( int i=0; i<100; i++ ){	System.out.print( ages[i] );}}}
19ArraysAccediendo elementos de un arrayNormalmente es mejor inicializar o instanciar el array justo después de la declaración del mismo. Por ejemplo:Preferimos esto:	int []arr = new int[100];Antes que esto:	int []arr;	arr = new int[100];Los elementos de un n-array tienen índices desde 0 hasta n-1. Si nos salimos de este rango, por ejemplo usando un miArray[n], obtendremos una ArrayIndexOutOfBoundsException.Y recuerda, no se puede redimensionar un array.
20ArraysLongitud de un arrayPara conseguir el número de elementos de un array, se puede usar el atributo length del array.El atributo length de un array devuelve el tamaño del mismo. Se utiliza así:miArray.lenghtpublic class ArraySample {public static void main( String[] args ){int[] ages = new int[100];for( int i=0; i<ages.length; i++ ){	System.out.print( ages[i] );}}}Cuando creamos el bucle para procesar los elementos de un array, es preciso usar el atributo longitud en la condición de terminación del bucle. Esto hará que hagamos una programación mejor.Declarar los tamaños de los arrays en un programa Java usando constantes es mucho mejor:final int ARRAY_SIZE = 1000; //declare a constant. . .int[] ages = new int[ARRAY_SIZE];
21ArraysArrays multi-dimensionalesLos arrays multidimensionales son implementados como arrays de arrays.Se declaran:// integer array 512 x 128 elementsint[][] twoD = new int[512][128];// character array 8 x 16 x 24char[][][] threeD = new char[8][16][24];// String array 4 rows x 2 columnsString[][] dogs = {{ "terry", "brown" },{ "Kristin", "white" },{ "toby", "gray"},{ "fido", "black"}};
22ArraysArrays multi-dimensionalesPara acceder un elemento en un array multidimensional se hace de la misma manera que para uno unidimensional.Por ejemplo, para acceder el primer elemento en la primera fila:System.out.print( miArray[0][0] );
23Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
24Argumentos de línea de comandosUna aplicación java puede aceptar cualquier número de argumentos a través de la línea de comandosLos argumentos de la línea de comandos permite al usuario afectar a la operación de la aplicaciónEl usuario entra argumentos en la línea de comandos al invocar la aplicación. Los especifica tras el nombre de la clase java a ejecutar.
25Argumentos de línea de comandosPor ejemplo, suponemos que tenemos una aplicación llamada Sort, que ordena 5 números. Podemos llamarla así, primero java, después el nombre del programa y, seguidamente, los argumentos (números para ser ordenados en este ejemplo):		java Sort 5 4 2 3 1
26Argumentos de línea de comandosEn Java, cuando invocamos una aplicación se le pasan los argumentos. La declaración de la función principal de la aplicación es:public static void main( String[] args )Cada String en el array contiene uno de los argumentos pasados por la línea de comandos al invocar la aplicación.
27Argumentos de línea de comandosPara imprimir por consola la lista de argumentos nos bastaría con esto:public class CommandLineSample{public static void main( String[] args ){for(int i=0; i<args.length; i++){System.out.println( args[i] );}}}
28Argumentos de línea de comandosA veces, como en nuestro ejemplo, será necesario convertir las cadenas a números. No hay problema:int firstArg = 0;if (args.length > 0){firstArg = Integer.parseInt(args[0]);}
29Argumentos de línea de comandosA veces, como en nuestro ejemplo, será necesario convertir las cadenas a números. No hay problema:int firstArg = 0;if (args.length > 0){firstArg = Integer.parseInt(args[0]);}

Más contenido relacionado

PPT
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
PDF
Programación Java
PPTX
Video 1 metodos y arreglos
ODP
01 el lenguaje Python
ODP
02 python Programación orientada a objetos y funcional
PPTX
Lenguaje de Programacion - Java
PPTX
DOCX
Arreglos en C++
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
Programación Java
Video 1 metodos y arreglos
01 el lenguaje Python
02 python Programación orientada a objetos y funcional
Lenguaje de Programacion - Java
Arreglos en C++

La actualidad más candente (20)

PDF
Principales codigos visual basic
PDF
Array en java
PDF
Jyoc java-cap04 vectores (arrays)
PDF
Tipos basicos de java
DOC
Taller completo
PPT
PPT
Arreglos en Java
PPT
Mule Librerias en Java
PPT
5 Vb.Net
PDF
Introducción a Swift
PPT
PPTX
Thalia castro 1101
DOCX
Funciones
PPTX
2 Introducción al lenguaje Ruby
PPT
Introducción a C SHARP
PDF
Semana 1 Estructuras de Control en Java
PDF
Utp pti_s5_arreglos 2012-2
Principales codigos visual basic
Array en java
Jyoc java-cap04 vectores (arrays)
Tipos basicos de java
Taller completo
Arreglos en Java
Mule Librerias en Java
5 Vb.Net
Introducción a Swift
Thalia castro 1101
Funciones
2 Introducción al lenguaje Ruby
Introducción a C SHARP
Semana 1 Estructuras de Control en Java
Utp pti_s5_arreglos 2012-2
Publicidad

Destacado (20)

PDF
Tutorial eclipse 1
PPTX
Conceptos de la poo
DOCX
Entrega final
DOCX
Analisis orientado a objetos
PPTX
Cafeteando east
PPTX
13 Networking
PPT
FPJUCE - Capitulo2
PPTX
06 Paquetes Y Java Classpath
PPTX
Programación orientada a objetos
PDF
2011 2012-practica poo.v.1.2
PPTX
J2EE - 01 Arquitectura Web
PDF
Java
 
PDF
INTRODUCCION A LA POO
PPT
Conceptos Basicos de POO
PDF
PPTX
04 Clases Y Objetos
PPTX
Clase3 Programación Orientada a Objetos
PPTX
03 Oop
PDF
Programación orientada a objetos (I)
PDF
Modelos de desarrollo del software
Tutorial eclipse 1
Conceptos de la poo
Entrega final
Analisis orientado a objetos
Cafeteando east
13 Networking
FPJUCE - Capitulo2
06 Paquetes Y Java Classpath
Programación orientada a objetos
2011 2012-practica poo.v.1.2
J2EE - 01 Arquitectura Web
Java
 
INTRODUCCION A LA POO
Conceptos Basicos de POO
04 Clases Y Objetos
Clase3 Programación Orientada a Objetos
03 Oop
Programación orientada a objetos (I)
Modelos de desarrollo del software
Publicidad

Similar a 02 Bases Del Lenguaje Java (20)

PPT
эспадрилья чашаэспадрилья чашаэспадрилья чаша
PDF
Arrays y arraylist pedro corcuera java.pdf
PDF
Tema 5 - Estructuras de datos.pdf
PDF
06 - Arrays y matrices en lenguaje C
DOCX
Longitud de cadena y funciones en java
PDF
S02_s1Estructuras de datos estáticas.pdf
PPT
Calse 3 JAVA 2012
DOCX
Xxxxxxxxxxxxxx
DOCX
Tutorial de matrices c#
DOCX
Tutorial de matrices c#
PPT
Algoritmos y Estructura de datos_Semana5 (3).ppt
PPTX
Arreglos java
PDF
Arrays C++
PDF
Java argumentos variables
PDF
Utp pti_s5_arreglos
PPT
PPTX
Arreglos Java
PDF
Carro De Compras
эспадрилья чашаэспадрилья чашаэспадрилья чаша
Arrays y arraylist pedro corcuera java.pdf
Tema 5 - Estructuras de datos.pdf
06 - Arrays y matrices en lenguaje C
Longitud de cadena y funciones en java
S02_s1Estructuras de datos estáticas.pdf
Calse 3 JAVA 2012
Xxxxxxxxxxxxxx
Tutorial de matrices c#
Tutorial de matrices c#
Algoritmos y Estructura de datos_Semana5 (3).ppt
Arreglos java
Arrays C++
Java argumentos variables
Utp pti_s5_arreglos
Arreglos Java
Carro De Compras

Más de Network Sens (8)

PPTX
12 Logging
PPTX
11 Excepciones
PPTX
10 Polimorfismo
PPTX
09 Clases Abstractas E Interfaces
PPTX
08 Herencia
PPTX
07 Javabeans
PPTX
01 - Introducción
PPTX
05 Creando Clases
12 Logging
11 Excepciones
10 Polimorfismo
09 Clases Abstractas E Interfaces
08 Herencia
07 Javabeans
01 - Introducción
05 Creando Clases

Último (20)

PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPT
Que son las redes de computadores y sus partes
PDF
Maste clas de estructura metálica y arquitectura
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Diapositiva proyecto de vida, materia catedra
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Presentación PASANTIAS AuditorioOO..pptx
Influencia-del-uso-de-redes-sociales.pdf
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Que son las redes de computadores y sus partes
Maste clas de estructura metálica y arquitectura
Propuesta BKP servidores con Acronis1.pptx
SAP Transportation Management para LSP, TM140 Col18
CyberOps Associate - Cisco Networking Academy
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
Estrategia de apoyo tecnología grado 9-3
Sesion 1 de microsoft power point - Clase 1
Diapositiva proyecto de vida, materia catedra
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx

02 Bases Del Lenguaje Java

  • 1. MÓDULO 3INTRODUCCIÓN A JAVA3.1 BASES DEL LENG. JAVA40 HORASJesús Muñozjesus@iluego.com
  • 2. Contenidos tema 3 – Introducción a JavaComenzamosBases del lenguaje JavaProgramación Orientada a Objetos (OOP)Clases y objetosCreando clasesPaquetes y java classpathJavabeansHerenciaClases abstractas e interfacesPolimorfismoClases internasExcepcionesLoggingNetworking2
  • 3. Bases del lenguaje Java3Bases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
  • 4. 4Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
  • 5. 5Input desde keyboardAl final de este tema, debereis saber:Crear un programa usando la línea de comandos y la consolaDiferenciar entre syntax-errors y runtime errorsCrear un programa java usando Eclipse / NetBeans
  • 6. 6Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
  • 7. 7Estructuras de controlDecision Control Structuresifif-elseif – else ifswitchRepetition Control Structureswhiledo-whileforBranching Statementsbreakcontinuereturn
  • 8. 8Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
  • 14. Arrays multi-dimensionales10ArraysQué es un arraySuponemos que tenemos 3 variables de tipo int con diferentes identificadores para cada variable.int number1;int number2;int number3;number1 = 1;number2 = 2;number3 = 3;Como puedes ver, parece una tarea tediosa para inicializar y usar las variables, especialmente si son usadas para el mismo fin.
  • 15. 11ArraysQué es un arrayEn Java y en otros lenguajes de programación, hay una capacidad en la cual se puede usar una variable para guardar una lista de datos y manipularlos más eficientemente. Este tipo de variable es llamado array.Un array guarda múltiples datos en el mismo tipo de datos, en un bloque contiguo en memoria, dividido en un número de slots o casillas.
  • 16. 12ArraysDeclaración de un arrayPara declarar un array, escribir el tipo de datos seguido por un corchete [], seguidos por el identificador o nombre:Por ejemplo:int []ages;o int ages[];
  • 17. 13ArraysInstanciación de un arrayDespués de declararlo, debemos crear el array y especificar su longitud mediante el constructor.Definiciones: InstanciaciónEn java, esto significa creación: ConstructorPara instanciar un objeto, necesitamos usar un constructor. Un constructor es un método que es llamado para crear un cierto objeto: Lo veremos más adelante
  • 18. 14ArraysInstanciación de un arrayPara instanciar (o crear) un array, escribir la nueva palabra clave, seguida de corchetes conteniendo el número de elementos que queremos en el array.Por ejemplo://declarationint ages[];//instantiate objectages = new int[100];or, can also be written as,//declare and instantiate objectint ages[] = new int[100];
  • 19. 15ArraysAccediendo elementos de un arrayPara acceder un elemento de un array o una parte de un array se puede usar un número, que actúa como índice.Este índice:Asignado a cada miembro del array, para permitir al programa el acceso a un miembro individual del array
  • 20. Comienza en cero y progresa secuencialmente por números enteros hasta el final del array (o hacia el inicio si comienza con la longitud menos uno
  • 21. Los elementos dentro del array van desde cero hasta (sizeOfArray – 1)16ArraysAccediendo elementos de un arrayPor ejemplo, dado el array que declaramos anteriormente, tenemos://assigns 10 to the first element in the arrayages[0] = 10;//prints the last element in the arraySystem.out.print(ages[99]);
  • 22. 17ArraysAccediendo elementos de un arrayImportante:Una vez que el array es declarado y constuido, el valor guardado de cada miembro del array es inicializado a cero para los arrays numéricos
  • 23. Para los tipos de datos por referencia, como Strings, no son inicializados a valor vacío “”. Por ello, se deben trasladar los arrays de Strings de manera explícita.18ArraysAccediendo elementos de un arrayEl siguiente código es un ejemplo de cómo imprimir en consola todos los elementos del array. Usamos un bucle for, así tenemos menos líneas de código.public class ArraySample{public static void main( String[] args ){int[] ages = new int[100];for( int i=0; i<100; i++ ){ System.out.print( ages[i] );}}}
  • 24. 19ArraysAccediendo elementos de un arrayNormalmente es mejor inicializar o instanciar el array justo después de la declaración del mismo. Por ejemplo:Preferimos esto: int []arr = new int[100];Antes que esto: int []arr; arr = new int[100];Los elementos de un n-array tienen índices desde 0 hasta n-1. Si nos salimos de este rango, por ejemplo usando un miArray[n], obtendremos una ArrayIndexOutOfBoundsException.Y recuerda, no se puede redimensionar un array.
  • 25. 20ArraysLongitud de un arrayPara conseguir el número de elementos de un array, se puede usar el atributo length del array.El atributo length de un array devuelve el tamaño del mismo. Se utiliza así:miArray.lenghtpublic class ArraySample {public static void main( String[] args ){int[] ages = new int[100];for( int i=0; i<ages.length; i++ ){ System.out.print( ages[i] );}}}Cuando creamos el bucle para procesar los elementos de un array, es preciso usar el atributo longitud en la condición de terminación del bucle. Esto hará que hagamos una programación mejor.Declarar los tamaños de los arrays en un programa Java usando constantes es mucho mejor:final int ARRAY_SIZE = 1000; //declare a constant. . .int[] ages = new int[ARRAY_SIZE];
  • 26. 21ArraysArrays multi-dimensionalesLos arrays multidimensionales son implementados como arrays de arrays.Se declaran:// integer array 512 x 128 elementsint[][] twoD = new int[512][128];// character array 8 x 16 x 24char[][][] threeD = new char[8][16][24];// String array 4 rows x 2 columnsString[][] dogs = {{ "terry", "brown" },{ "Kristin", "white" },{ "toby", "gray"},{ "fido", "black"}};
  • 27. 22ArraysArrays multi-dimensionalesPara acceder un elemento en un array multidimensional se hace de la misma manera que para uno unidimensional.Por ejemplo, para acceder el primer elemento en la primera fila:System.out.print( miArray[0][0] );
  • 28. 23Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
  • 29. 24Argumentos de línea de comandosUna aplicación java puede aceptar cualquier número de argumentos a través de la línea de comandosLos argumentos de la línea de comandos permite al usuario afectar a la operación de la aplicaciónEl usuario entra argumentos en la línea de comandos al invocar la aplicación. Los especifica tras el nombre de la clase java a ejecutar.
  • 30. 25Argumentos de línea de comandosPor ejemplo, suponemos que tenemos una aplicación llamada Sort, que ordena 5 números. Podemos llamarla así, primero java, después el nombre del programa y, seguidamente, los argumentos (números para ser ordenados en este ejemplo): java Sort 5 4 2 3 1
  • 31. 26Argumentos de línea de comandosEn Java, cuando invocamos una aplicación se le pasan los argumentos. La declaración de la función principal de la aplicación es:public static void main( String[] args )Cada String en el array contiene uno de los argumentos pasados por la línea de comandos al invocar la aplicación.
  • 32. 27Argumentos de línea de comandosPara imprimir por consola la lista de argumentos nos bastaría con esto:public class CommandLineSample{public static void main( String[] args ){for(int i=0; i<args.length; i++){System.out.println( args[i] );}}}
  • 33. 28Argumentos de línea de comandosA veces, como en nuestro ejemplo, será necesario convertir las cadenas a números. No hay problema:int firstArg = 0;if (args.length > 0){firstArg = Integer.parseInt(args[0]);}
  • 34. 29Argumentos de línea de comandosA veces, como en nuestro ejemplo, será necesario convertir las cadenas a números. No hay problema:int firstArg = 0;if (args.length > 0){firstArg = Integer.parseInt(args[0]);}
  • 35. 30Argumentos de línea de comandosEn Eclipse también se pueden pasar estos argumentos:
  • 36. 31Bases del lenguaje JavaBases del lenguaje JavaInput desde keyboardEstructuras de controlArraysArgumentos de línea de comandosTrabajando con clases built-in
  • 37. 32Trabajando con clases built-inOOP, Programación Orientada a ObjetosEs una de las características principales de JavaEstos objetos definen propiedades y métodos
  • 38. 33Trabajando con clases built-inOOP, Programación Orientada a ObjetosEs una de las características principales de JavaEstos objetos definen propiedades y métodos
  • 39. Es importante que recordeis…“Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado”Adelante!!!Jesús Muñozjesus@iluego.com