✅✅ ✅ ✅ ✅ 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.
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
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.
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
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.
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.
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 {"???
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
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".
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 };
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 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.
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
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
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.
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!!
Siempre recurro a pildorasinformaticas en algún momento del año, hoy nuevamente aprendiendo con usted, un lujo.
M está gustando mucho la programación genérica, te evita muchos quebraderos de cabeza. Gracias por los vídeos
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.
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
Creo que me va bien gracias a que al final de cada vídeo dices que me vaya bien. Gracias!
Muchas gracias salvaste un sprint en mi trabajo jajaja 🤣 💙
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!!
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.
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!
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
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
Por que extends en vez de implements? disculpen lo breve =)
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😂😂
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.
Al final acabas amando esto.
Excelente Juan
Acabo de conocer este canal, y esta genial, los videos concisos y precisos... GRACIAS MIL por este aporte.!!!!
Excelente!!!, Gracias. Chévere cambur 🍌!!!!
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
pufffffffffffffff, corto y hasta mañana, exploté.
porque no se le puede poner implements en el generico del metodo ejemplo:
?
Me exploto la cabeza. Menuda liada.
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
😱 me encanta este tema de la programación genérica , muy bien explicado con lo de la magia xd
Gracias.
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
Min 22:20 Si es una interfaz, no se debería usar implements?
Me ha volado la cabeza lo de extens Comparable en el método. 🤣
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!!
Muy bien explicado.
jose1986zam Gracias !! Un saludo
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 {"???
Enseña las conversiones
es decir pasar de un generico a un int para una suma con otro generico
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
de lo mejor gracias profe
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".
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
?
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 };
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.
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
el parametro de compare To me da un error ya que dice que no se puede comparar ya que es un entero.
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.
porque dentro de una clase y
dentro de un metodo generico de la misma no puedo usar un atributo de la clase
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
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[]...
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!!
Excelente.
Quein me ayuda con conversiones :'''c ??
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());