✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅ 🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀 🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀 💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Es increíble toda la información que aportas en tus vídeos ya no sólo el como enseñar conceptos nuevos de una manera tan sencilla (que no es fácil y se valora muchísimo) sino además la documentación que añades en tus explicaciones de una forma tan limpia y clara. Eternamente agradecida como estudiante de programación por este grandioso aporte que nos ha dado. Muchisímas gracias Juan.
Excelentes videos, mis felicitaciones... Sugerencia: Para los que no saben y quieren practicar un poco más, se pueden comparar instancias de objetos creados por nosotros, haciendo que implementen la interfaz Comparable y sobreescribir su método compareTo(), por ej: Yo tengo una superclase abstracta Persona de la cual pueden heredar varias más (Empleado, etc), luego, en la clase Persona implemento la interfaz Comparable y en esta misma sobreescribo el método compareTo para que todas las clases hijas de Persona sean comparables: @Override public int compareTo(Persona p) { if (this.edad > p.edad) { return 1; } else if (this.edad < p.edad) { return -1; } return 0; } En este caso el método compareTo lo sobreescribo en la clase abstracta Persona, de no hacerlo allí tendría que hacerlo en cada clase que herede de esta, ya eso queda según la necesidad del programador.
Felicidades. Tus videos son muy profesionales. Ha pasado mucho tiempo desde ahora que estoy estudiando, pero estos conceptos siguen persistentes. Gracias por tu contribución.
Me sirvio mucho este video y me parece como sugerencia constructiva, que al buscar el menor elemento lo bucaras con un do while empezando a recorrer el array desde el elemento central hacia los extremos, comparando de a dos elementos al mismo tiempo y enseñar la buena práctica de utilizar la menor cantidad de ciclos. Y ademas añade el caso de contemplar si el array es par o impar
Muy bueno de verdad voy en el video 50 tengo conocimientos previos de java pero de igual forma me ha ayudado mucho a comprender desde otro punto de vista otras cosas de una mejor manera para poder usarlos. Me animo a realizar curso de manera presencial sumado a lo que veo en la universidad mas estos videos es mucho lo que se logra de verdad gracias y saludos desde Venezuela.
Uff venia re feliz con las clases genéricas diciendo "como no aprendí esto antes" y pensando que las iba a usar un montón y ahora llegué a esto y se me hizo un quilombo la cabeza😂😂
Hola Profe, quisiera saber si ha hecho algun video sobre Nodos, listas enlazadas, pilas y colas y donde estaría. Muchisimas gracias por sus tutos un saludo desde Colombia.
para utilizar el método compareTo pusiste lo de pero funcionaría igual si pusieses el extends Comparable arriba en donde pones public class MisMatrices? es decir, poniendo "class MisMatrices extends Comparable {"???
Muy pero que muuy buenos vídeos de programación haces. Quisiera preguntar si en un futuro enseñarás la programación funcional en java o en algún otro lenguaje. Muchas gracias.
Me he quedado con duda al final sobre como obtener en fechas la menor en un lenguaje entendible, mi suposicion fue que habria que convertir el GregorianCalendar en un Date con el metodo getTime() pero no me da la fecha menor si no mas bien el segundo elemento del arreglo lo he puesto asi: Calendar fechas[]={new GregorianCalendar(2015,07,12), new GregorianCalendar(2019,10,21), new GregorianCalendar(2013,04,12), }; System.out.println(MisMatrices.getMenor(fechas).getTime()); Esto me da en la consola: Thu Nov 21 00:00:00 CST 2019 el metodo para comparar que hicimos fue: public static T getMenor(T[ ] a){ if(a==null || a.length==0) return null; T elementoMenor=a[0]; for(int i=1; i0){ elementoMenor=a[1]; } } return elementoMenor; } Porque me da el segundo elemento?
Hola Brenda, te sale el segundo elemento porque en: if(elementoMenor.compareTo(a[i])>0){ elementoMenor=a[1]; } Estas asignando el segundo elemento del array con elementoMenor = a[1]. Esa instrucción la debes cambiar por elementoMenor = a[i] Un saludo.
El error que le veo al segundo metodo generico, que devuelve el menor, es que si es un array de 1 elmento te tira nullPointerException, porque el metodo recorre siempre, sin chequear, desde el elemento 1 (2do elemento de un array) y ahi se rompe todo
Matías Que hemos usado una clase genérica sin especificar el tipo y esto no es seguro. Y esto ocurrió con la interfaz Comparable T. Si miras la API de Java verás que la definición de la intefaz Comparable es Comparable . Hablaremos de ello en el próximo vídeo. Un saludo
Juan en este video utilizas objetos array simples (no array list) e instancias varios objetos de tipo empleados dentro del mismo, pero jamas le indicas dimension al array, es decir, no le dices cuantas posiciones tiene. Pense que esa era una cualidad unica de los arraylist, como puede ser posible?
el simplemente usó otra forma de instanciar los arrays normales, pues la dimensión del arreglo se adapta a el momento que esta asignándolo y declarándolo.
Se trata de la *declaración explícita* de un array estático, por la que damos un valor (inicializamos) los elementos del array: String[] rios = { "Amazonas", "Orinoco", "Uruguay", "Paraná", "Río de la Plata" }; Es una forma explícita de declarar un array de 5 posiciones, lo que haríamos con la sintaxis: String[] rios = new String[5]; En esta última declaración nosotros no damos un valor explícito a los elementos, pero el compilador sí. ¿Cuál es este valor? El *valor por defecto* del dato de que se trate: si es un entero, 0; si es un float, 0.0f, si es un boolean, false... y si es un objeto, cualquier objeto (los strings lo son) ¡null!: String[] rios = { null, null, null, null, null };
Buenas tardes Ingeniero Juan: tengo un problema en el video No. 15 al utilizar la clase javax.swing especificamente cuando declaro las variables de tipo String usando el metodo JOptionPane, me presenta el siguiente error; Multiple markers at this line - The value of the local variable nombre_usuario is not used - Access restriction: The type JOptionPane is not accessible due to restriction on required library C:\Program Files\Java\jre1.8.0_161\lib t.jar - Access restriction: The method showInputDialog(Object) from the type JOptionPane is not accessible due to restriction on required library C:\Program Files\Java \jre1.8.0_161\lib t.jar, he ingresado para darle rt.jar permisos de admnistrador pero sigue siempre el mismo error, no se como corregir el error. muchas gracias por su ayuda.
Hola juan espero que estés bien! he estado echando un vistazo al curso entero y quería saber si este es el curso entero de java o habría más? o la posibilidad de comprar el curso entero de java como lo tienes con htlm5. gracias por tu ayuda. Un saludo!
alex martin Hola !! El curso tendrá más de 300 vídeos. Aún no hemos empezado con JEE. Faltan por ver cosas avanzadas y complejas como JDBC, Threads, Servlets etc. Cuando termine el curso (aún queda), lo pondré en mi web para la descarga. Un saludo
para pasarle un array con valores primitivos como numero seria así: Integer numeros[]= {1,2,3,4,5}; System.out.println(MisMatrices.getElementos(numeros));
Aclaración: la razón por la que puedes hacerlo es, naturalmente, porque esos números han dejado de ser datos primitivos y se han convertido en no otra cosa que en *objetos* de la *clase envoltorio* o _wrapper class_ *Integer* mediante un proceso automático de "autoboxing".
Lo que entendí en este vídeo: Es obligatorio que los parámetros que entren en el método generico, cumplan con la misma cadena de herencia que tiene la clase donde proviene dicho método genérico
Men tienes uan guia donde se apliquen esas cosas con ejercicios para practicar Es que ejemplo De POO encunetro ejercicios donde debes aplicar herencia poliformismo y ect pero de estos temas no como interface generics y los anteriores me ayudas plis :''c
AlexS.w WorlD29 brother pues yo estoy también en las mismas, me explico estoy apenas viendo este video...en cuanto a ejercicios..puedes hacerlos tu mnismos no te complique....te pongo uno..créame una clase generica en la cual debas hacer todas las operaciones aritmética ( suma, resta etc.)...
✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥
Es increíble toda la información que aportas en tus vídeos ya no sólo el como enseñar conceptos nuevos de una manera tan sencilla (que no es fácil y se valora muchísimo) sino además la documentación que añades en tus explicaciones de una forma tan limpia y clara. Eternamente agradecida como estudiante de programación por este grandioso aporte que nos ha dado.
Muchisímas gracias Juan.
Ese hombre en cada capitulo sorprende, y más cuando uno ve que lleva mas de 7 años el vídeo pero sigue siendo util, sencillo y funcional.
Siempre recurro a pildorasinformaticas en algún momento del año, hoy nuevamente aprendiendo con usted, un lujo.
Es impresionante la claridad y detalle para explicar un tema tan abstracto como lo es los metodos genericos, gracias profesor Juan!
La cantidad de información que brinda y nos regala es muy valiosa.
Aquí ando, aprendiendo un poco para ir subiendo el nivel.
Gracias.
M está gustando mucho la programación genérica, te evita muchos quebraderos de cabeza. Gracias por los vídeos
Excelentes videos, mis felicitaciones...
Sugerencia: Para los que no saben y quieren practicar un poco más, se pueden comparar instancias de objetos creados por nosotros, haciendo que implementen la interfaz Comparable y sobreescribir su método compareTo(), por ej:
Yo tengo una superclase abstracta Persona de la cual pueden heredar varias más (Empleado, etc), luego, en la clase Persona implemento la interfaz Comparable y en esta misma sobreescribo el método compareTo para que todas las clases hijas de Persona sean comparables:
@Override
public int compareTo(Persona p) {
if (this.edad > p.edad) {
return 1;
} else if (this.edad < p.edad) {
return -1;
}
return 0;
}
En este caso el método compareTo lo sobreescribo en la clase abstracta Persona, de no hacerlo allí tendría que hacerlo en cada clase que herede de esta, ya eso queda según la necesidad del programador.
Correcto !! hablo de CompreTo y la interfaz Comparable en el curso. No recuerdo ya el vídeo.... Un saludo!!
Un millón de gracias por este canal!, me ha ayudado un montón para aprender a programar en java :).
Gracias por el comentario. Me alegro de que te resulte de ayuda. Un saludo!
Muchas gracias salvaste un sprint en mi trabajo jajaja 🤣 💙
Felicidades. Tus videos son muy profesionales. Ha pasado mucho tiempo desde ahora que estoy estudiando, pero estos conceptos siguen persistentes. Gracias por tu contribución.
Creo que me va bien gracias a que al final de cada vídeo dices que me vaya bien. Gracias!
Me sirvio mucho este video y me parece como sugerencia constructiva, que al buscar el menor elemento lo bucaras con un do while empezando a recorrer el array desde el elemento central hacia los extremos, comparando de a dos elementos al mismo tiempo y enseñar la buena práctica de utilizar la menor cantidad de ciclos. Y ademas añade el caso de contemplar si el array es par o impar
Me enamoré del concepto de programación genérica.
¡Muchas gracias por todo profesor!, ya llevo un mes y ya ando por estos rubros tan interesantes.
Acabo de conocer este canal, y esta genial, los videos concisos y precisos... GRACIAS MIL por este aporte.!!!!
Muy bueno de verdad voy en el video 50 tengo conocimientos previos de java pero de igual forma me ha ayudado mucho a comprender desde otro punto de vista otras cosas de una mejor manera para poder usarlos. Me animo a realizar curso de manera presencial sumado a lo que veo en la universidad mas estos videos es mucho lo que se logra de verdad gracias y saludos desde Venezuela.
Jesus Pastran MUchas gracias por el comentario. Me alegro de que te resulten de utilidad los vídeos. Un saludo
Excelente Juan
Uff venia re feliz con las clases genéricas diciendo "como no aprendí esto antes" y pensando que las iba a usar un montón y ahora llegué a esto y se me hizo un quilombo la cabeza😂😂
Al final acabas amando esto.
Por que extends en vez de implements? disculpen lo breve =)
Min 22:20 Si es una interfaz, no se debería usar implements?
de lo mejor gracias profe
Excelente!!!, Gracias. Chévere cambur 🍌!!!!
😱 me encanta este tema de la programación genérica , muy bien explicado con lo de la magia xd
Gracias.
hola profe Juan, ojala no se le olvide tratar el tema de ajax en java y tambien en el curso de php, GRACIAS...
Tomo nota. Un saludo!!
21:18 Por qué extends y no implements?
Porque se trata de un método y no una clase. La sintaxis de Java exige que así sea cuando un genérico hereda dentro de un método. Un saludo!
Cuando, una interface hereda de otra interface, tambien se utiliza la palabra extends, en lugar de la palabra implements
porque no se le puede poner implements en el generico del metodo ejemplo:
?
Hola Profe, quisiera saber si ha hecho algun video sobre Nodos, listas enlazadas, pilas y colas y donde estaría. Muchisimas gracias por sus tutos un saludo desde Colombia.
Hola !! Desde el vídeo 179 al vídeo 189 hablo de listas, colas, listas enlazadas etc. Un saludo
Ok muchas gracias
Buena explicacion, lo entendi bien, gracias
porque dentro de una clase y
dentro de un metodo generico de la misma no puedo usar un atributo de la clase
RESPONDER
?
para utilizar el método compareTo pusiste lo de pero funcionaría igual si pusieses el extends Comparable arriba en donde pones public class MisMatrices?
es decir, poniendo "class MisMatrices extends Comparable {"???
Me ha volado la cabeza lo de extens Comparable en el método. 🤣
Muy bien explicado.
jose1986zam Gracias !! Un saludo
Muy pero que muuy buenos vídeos de programación haces. Quisiera preguntar si en un futuro enseñarás la programación funcional en java o en algún otro lenguaje. Muchas gracias.
Gracias por el comentario. Es mi intención hacerlo en un futuro, pero no se cuándo (espero que pronto). Un saludo!!
Me he quedado con duda al final sobre como obtener en fechas la menor en un lenguaje entendible, mi suposicion fue que habria que convertir el GregorianCalendar en un Date con el metodo getTime() pero no me da la fecha menor si no mas bien el segundo elemento del arreglo lo he puesto asi:
Calendar fechas[]={new GregorianCalendar(2015,07,12),
new GregorianCalendar(2019,10,21),
new GregorianCalendar(2013,04,12),
};
System.out.println(MisMatrices.getMenor(fechas).getTime());
Esto me da en la consola: Thu Nov 21 00:00:00 CST 2019
el metodo para comparar que hicimos fue:
public static T getMenor(T[ ] a){
if(a==null || a.length==0) return null;
T elementoMenor=a[0];
for(int i=1; i0){
elementoMenor=a[1];
}
}
return elementoMenor;
}
Porque me da el segundo elemento?
Hola Brenda,
te sale el segundo elemento porque en:
if(elementoMenor.compareTo(a[i])>0){
elementoMenor=a[1];
}
Estas asignando el segundo elemento del array con elementoMenor = a[1]. Esa instrucción la debes cambiar por elementoMenor = a[i]
Un saludo.
Buenas noches profesor. No entendi bien el porque se coloca en lugar de . na vez mas gracias por su ayuda. saludos!!!
Marcel Elias Hola !! No te preocupes. En el próximo vídeo aclararé el por qué de esta instrucción. Un saludo
El error que le veo al segundo metodo generico, que devuelve el menor, es que si es un array de 1 elmento te tira nullPointerException, porque el metodo recorre siempre, sin chequear, desde el elemento 1 (2do elemento de un array) y ahi se rompe todo
Qué significa la advertencia que sale la definición del método getMenor en la parte y en la línea del compareTo?
Matías Que hemos usado una clase genérica sin especificar el tipo y esto no es seguro. Y esto ocurrió con la interfaz Comparable T. Si miras la API de Java verás que la definición de la intefaz Comparable es Comparable .
Hablaremos de ello en el próximo vídeo. Un saludo
el parametro de compare To me da un error ya que dice que no se puede comparar ya que es un entero.
Juan en este video utilizas objetos array simples (no array list) e instancias varios objetos de tipo empleados dentro del mismo, pero jamas le indicas dimension al array, es decir, no le dices cuantas posiciones tiene. Pense que esa era una cualidad unica de los arraylist, como puede ser posible?
el simplemente usó otra forma de instanciar los arrays normales, pues la dimensión del arreglo se adapta a el momento que esta asignándolo y declarándolo.
Se trata de la *declaración explícita* de un array estático, por la que damos un valor (inicializamos) los elementos del array:
String[] rios = { "Amazonas", "Orinoco", "Uruguay", "Paraná", "Río de la Plata" };
Es una forma explícita de declarar un array de 5 posiciones, lo que haríamos con la sintaxis:
String[] rios = new String[5];
En esta última declaración nosotros no damos un valor explícito a los elementos, pero el compilador sí. ¿Cuál es este valor? El *valor por defecto* del dato de que se trate: si es un entero, 0; si es un float, 0.0f, si es un boolean, false... y si es un objeto, cualquier objeto (los strings lo son) ¡null!:
String[] rios = { null, null, null, null, null };
pufffffffffffffff, corto y hasta mañana, exploté.
Hola profesor, se puede decir que esto remplazaria la carateriztica en java de los tipos de datos dinamicos ?
Hola !! Si por datos dinámicos te refieres a los ArrayList, no. No exactamente. Son dos cosas diferentes que se complemeentan. Un saludo!!
porque dentro de una clase y
dentro de un metodo generico de la misma no puedo usar un atributo de la clase
RESPONDER
Buenas tardes Ingeniero Juan: tengo un problema en el video No. 15 al utilizar la clase javax.swing especificamente cuando declaro las variables de tipo String usando el metodo JOptionPane, me presenta el siguiente error; Multiple markers at this line
- The value of the local variable nombre_usuario is not used
- Access restriction: The type JOptionPane is not accessible due to restriction on required library C:\Program Files\Java\jre1.8.0_161\lib
t.jar
- Access restriction: The method showInputDialog(Object) from the type JOptionPane is not accessible due to restriction on required library C:\Program Files\Java
\jre1.8.0_161\lib
t.jar, he ingresado para darle rt.jar permisos de admnistrador pero sigue siempre el mismo error, no se como corregir el error. muchas gracias por su ayuda.
Hola juan espero que estés bien! he estado echando un vistazo al curso entero y quería saber si este es el curso entero de java o habría más? o la posibilidad de comprar el curso entero de java como lo tienes con htlm5. gracias por tu ayuda.
Un saludo!
alex martin Hola !! El curso tendrá más de 300 vídeos. Aún no hemos empezado con JEE. Faltan por ver cosas avanzadas y complejas como JDBC, Threads, Servlets etc.
Cuando termine el curso (aún queda), lo pondré en mi web para la descarga. Un saludo
Ok! genial, un saludo!!
Enseña las conversiones
es decir pasar de un generico a un int para una suma con otro generico
porque dentro de una clase y
dentro de un metodo generico de la misma no puedo usar un atributo de la clase
para pasarle un array con valores primitivos como numero seria así:
Integer numeros[]= {1,2,3,4,5};
System.out.println(MisMatrices.getElementos(numeros));
Aclaración: la razón por la que puedes hacerlo es, naturalmente, porque esos números han dejado de ser datos primitivos y se han convertido en no otra cosa que en *objetos* de la *clase envoltorio* o _wrapper class_ *Integer* mediante un proceso automático de "autoboxing".
con arrays de tipo int no funciona en el método, me pide que crea un método que tenga como pase de parámetro de tipo int[]...
Excelente.
Quein me ayuda con conversiones :'''c ??
Lo que entendí en este vídeo: Es obligatorio que los parámetros que entren en el método generico, cumplan con la misma cadena de herencia que tiene la clase donde proviene dicho método genérico
Me exploto la cabeza. Menuda liada.
Como le hace para que el cursor al moverlo se ponga rojo lo que utiliza para explicar, es un programa o algo?
el diseño eso :vvvvv
porque dentro de una clase y
dentro de un metodo generico de la misma no puedo usar un atributo de la clase
RESPONDER
AlexS.w WorlD29 como así?
Que intentas hacer ?
Men tienes uan guia donde se apliquen esas cosas con ejercicios para practicar Es que ejemplo De POO encunetro ejercicios donde debes aplicar herencia poliformismo y ect pero de estos temas no como interface generics y los anteriores me ayudas plis :''c
AlexS.w WorlD29 brother pues yo estoy también en las mismas, me explico estoy apenas viendo este video...en cuanto a ejercicios..puedes hacerlos tu mnismos no te complique....te pongo uno..créame una clase generica en la cual debas hacer todas las operaciones aritmética ( suma, resta etc.)...
Quien tiene una guia con ejercicios para usar todo sobre genericas y etc
nesecito ejercicios para ver si entendi el tema
plisssss
Lo encontraste?
@@ernestofavio6735 no amigo jajajja
aprendi en mi primer trabajo xD
WJJ-->Wiki Java Juan
Me oís llorar? :'v
Yo cuando hice el vídeo también lloraba
System.out.println(MisMatrices.getMenor(fechas).getTime());